編輯:關於Android編程
本文實例為大家分享了android讀取assets中Excel的具體代碼,供大家參考,具體內容如下
1.在assets下放的excel表格,命名為excel.xls
2.添加讀取excel需要的jar包”jxl.jar”,assets是建在main級別目錄下,建錯地方找不到文件
3.讀取excel中的文件
/*獲取excel表格中的數據不能在主線程中調用
xlsName 為表格的名稱
index 表示第幾張表格
*/
public ArrayList<ExcelBean> getExcelData(String xlsName, int index) {
ArrayList<ExcelBean> list = new ArrayList<>();
//獲取文件管理器
AssetManager manager = context.getAssets();
try {
Workbook workbook = Workbook.getWorkbook(manager.open(xlsName));
Sheet sheet = workbook.getSheet(index);
//表格一共有多少行
int sheetRows = sheet.getRows();
//將數據添加到集合中
for (int i = 0; i < sheetRows; i++) {
ExcelBean bean = new ExcelBean();
//獲取列的數據
bean.setChinese(sheet.getCell(0, i).getContents());
bean.setEnglish(sheet.getCell(1, i).getContents());
bean.setSpell(sheet.getCell(2, i).getContents());
list.add(bean);
}
workbook.close();
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
4.更新UI
public class ExcelDataAsyncTask extends AsyncTask<String, Void, ArrayList<ExcelBean>> {
private Context context;
private int index;
private ExcelData excelData;
public ExcelDataAsyncTask(Context context, int index, ExcelData excelData) {
this.context = context;
this.index = index;
this.excelData = excelData;
}
@Override
protected ArrayList<ExcelBean> doInBackground(String... params) {
return getExcelData(params[0], index);
}
@Override
protected void onPostExecute(ArrayList<ExcelBean> excelBeen) {
super.onPostExecute(excelBeen);
if (excelBeen != null && excelBeen.size() > 0) {
// ExcelAdapter adapter=new ExcelAdapter(excelBeen,context);
// lv.setAdapter(adapter);
excelData.getData(excelBeen);
}
}
/利用接口回調,更新UI
public interface ExcelData {
void getData(ArrayList<ExcelBean> list);
}
Java代碼:
new ExcelDataAsyncTask(ExcelSecondActivity.this, mp3Id, new ExcelDataAsyncTask.ExcelData() {
@Override
public void getData(final ArrayList<ExcelBean> list) {
ExcelAdapter adapter = new ExcelAdapter(list, ExcelSecondActivity.this);
lv.setAdapter(adapter);
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
}
});
}
}).execute("excel.xls");
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持本站。
android中生成excel
都說程序員不爽產品經理,其實有的時候遇到一些奇葩的後台開發人員也會很不順心。最近項目有這樣一個要求,要生成一個excel然後發郵件給客戶。結果後台人員直接把這個功能扔給客
Android自定義控件開發實戰之實現ListView下拉刷新實例代碼
這篇博客為大家介紹一個android常見的功能——ListView下拉刷新:首先下拉未松手時候手機顯示這樣的界面:下面的代碼是自定的扎樣的控件:<span >
“Android UI”設計官方教程
從Android的官方開發者博客找了一份幻燈片,介紹了一些Android UI設計,我們把這個教程整理出來,希望大家喜歡。為開發者,為啥我們要關心UI,前面
android 內存洩漏分析技巧
java虛擬機運行一般都有一個內存界限,超過這個界限,就會報outofmemory。這個時候一般都是存在內存洩漏。解決內存洩漏問題,竊以為分為兩個步驟:分析應用程序是否真