日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android 读取excel数据并保存为xml文件

發布時間:2024/4/15 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 读取excel数据并保存为xml文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
今天,簡單講講android如何 

讀取excel數據并保存為xml文件。


最近,我這邊需要把客戶翻譯的Excel字符資源作為xml字符資源,當時自己是一個一個的復制,發現效率太低。后來,在網上搜索了資料,發現可以讀取Excel字符資源然后轉成所需的xml資源,這里記錄一下。


excel表格里面數據



1.準備工作

1.1 excel 表格
我在assets 下放的的excel 表


1.2 讀取excel 需要的jar 包

這個在我的工程里有,大家可以去下載。


注意點:
assets 的目錄不要建錯,他是在main 級別目錄下的,建錯地方會讀取不到文件。


2.相關代碼

2.1 讀取excel

/** * 獲取 excel 表格中的數據,不能在主線程中調用 * * @param xlsName excel 表格的名稱 * @param index 第幾張表格中的數據 */ private ArrayList<LanguageModel> getXlsData(String xlsName, int index) {ArrayList<LanguageModel> countryList = new ArrayList<LanguageModel>(); AssetManager assetManager = getAssets(); try {Workbook workbook = Workbook.getWorkbook(assetManager.open(xlsName)); Sheet sheet = workbook.getSheet(index); int sheetNum = workbook.getNumberOfSheets(); int sheetRows = sheet.getRows(); int sheetColumns = sheet.getColumns(); Log.e(TAG, "the num of sheets is " + sheetNum); Log.e(TAG, "the name of sheet is " + sheet.getName()); Log.e(TAG, "total rows is =" + sheetRows); Log.e(TAG, "total cols is =" + sheetColumns); for (int i = 750; i < sheetRows; i++) {LanguageModel languageModel = new LanguageModel(); languageModel.setKey(sheet.getCell(0, i).getContents()); languageModel.setZh_value(sheet.getCell(1, i).getContents()); languageModel.setEn_value(sheet.getCell(2, i).getContents()); languageModel.setZhrTW_value(sheet.getCell(3, i).getContents()); languageModel.setIt_value(sheet.getCell(5, i).getContents()); languageModel.setDe_value(sheet.getCell(6, i).getContents()); countryList.add(languageModel); }// Log.e(TAG," "+sheet.getCell(0, 0).getContents()+" "+sheet.getCell(1, 0).getContents() // +" "+sheet.getCell(2, 0).getContents()+" "+sheet.getCell(3, 0).getContents()+" " // +sheet.getCell(4, 0).getContents()+" "+sheet.getCell(5, 0).getContents()+" " // +sheet.getCell(6, 0).getContents()+" "); workbook.close(); } catch (Exception e) {Log.e(TAG, "read error=" + e, e); }return countryList; }//在異步方法中 調用 private class ExcelDataLoader extends AsyncTask<String, Void, ArrayList<LanguageModel>> {@Override protected void onPreExecute() {progressDialog.setMessage("加載中,請稍后......"); progressDialog.setCanceledOnTouchOutside(false); progressDialog.show(); }@Override protected ArrayList<LanguageModel> doInBackground(String... params) {return getXlsData(params[0], 0); }@Override protected void onPostExecute(ArrayList<LanguageModel> languageModels) {if (progressDialog.isShowing()) {progressDialog.dismiss(); }if (languageModels != null && languageModels.size() > 0) {//存在數據 Log.e("languageModel", " languageModels.size()=" + languageModels.size()); // <string name="app_name">P6SPro</string> StringBuffer languagexml = new StringBuffer(); int size = languageModels.size(); int m = size/50; for (int i = 0; i < size; i++) {LanguageModel languageModel = languageModels.get(i); languagexml.append("<string name=\""+languageModel.getKey()+"\">"+languageModel.getEn_value()+"</string>").append("\n"); // Log.e("languageModel", "i=" + i + " <string name=\"" + languageModel.getKey() + "\">" + languageModel.getEn_value() + "</string>"); }Log.e("mylanguageModel",""+languagexml.toString()); } else {//加載失敗 }}}

說明
sheet.getCell(0, 1).getContents() 表示第1行第0列的數據,因為事先是知道excel 表中的內容的,所以行和列自己定義就好了。



2.2 相關調用

new ExcelDataLoader().execute("phone_country_info1.xls");


2.3 結果顯示




這里需要注意一點:就是StringBuffer的拼接的長度最大時80行左右,多的會打印不出來,應該是app的內存不夠。我使用的是每50行打印一次,然后復制后,再打印后面的50行,直到全部打印完成。


還有就是Excel文件必須保存為Excel2003,不然會報jxl.read.biff.BiffException: Unable to recognize OLE stream的錯誤。

出現這個異常是因為文件是Excel2007,而jxl解析07會報上述異常,也就是jxl可以處理Excel2003

方法:

打開文件,右上角文件另存為,選類型2003文 件,(還沒試2003模版會怎樣)

將導入的文件名改成現在的,試一下


這樣就基本完成了。


下載地址:http://download.csdn.net/download/bzlj2912009596/10159401


android 讀取excel數據并保存為xml文件就講完了。


就這么簡單




總結

以上是生活随笔為你收集整理的android 读取excel数据并保存为xml文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。