我正在爲我的大學項目工作。我搜查了很多,但不知道爲什麼excel沒有閱讀。我在Android Studio中添加了this jar文件。遵循this教程。其實我很困惑。但是,我已經添加了一些日誌和敬酒,如你所見。他們什麼也沒有顯示。我調試過它,實際上在調試的情況下,它什麼也沒有顯示。你能否建議我一個讀取和寫入Excel或任何代碼片段的好方法?如何從Android中的特定存儲中讀取Excel文件?
的代碼如下:
if (!isExternalStorageAvailable() || isExternalStorageReadOnly())
{
Log.w("FileUtils", "Storage not available or read only");
return;
}
try{
// Creating Input Stream
sharedPreferences = MyApplication.preferences;
final int projectID = sharedPreferences.getInt("count", 0);
int taskID = 0;
final String count = sharedPreferences.getString("project", projectFile);
File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/"
+ mainFolder + "/" + count,"/task.xls");
Log.e("full file",file.toString());
FileInputStream myInput = new FileInputStream(file);
Log.e("full file",myInput.toString());
// Create a POIFSFileSystem object
POIFSFileSystem myFileSystem = new POIFSFileSystem(myInput);
Log.e("full file",myFileSystem.toString());
// Create a workbook using the File System
HSSFWorkbook myWorkBook = new HSSFWorkbook(myFileSystem);
Log.e("full file",myWorkBook.toString());
// Workbook wb = WorkbookUtil.create(new File("MyExcel.xls"));
// Get the first sheet from workbook
HSSFSheet mySheet = myWorkBook.getSheetAt(0);
Log.e("full file",mySheet.toString());
/** We now need something to iterate through the cells.**/
Iterator<Row> rowIter = mySheet.rowIterator();
HSSFRow nameRow = mySheet.getRow(1);
String name = nameRow.getCell(0).toString();
projectname.setText(name);
Log.e("full file",name.toString());
while(rowIter.hasNext()){
HSSFRow myRow = (HSSFRow) rowIter.next();
Iterator<Cell> cellIter = myRow.cellIterator();
while(cellIter.hasNext()){
HSSFCell myCell = (HSSFCell) cellIter.next();
Log.w("FileUtils", "Cell Value: " + myCell.toString());
Toast.makeText(context, "cell Value: " + myCell.toString(), Toast.LENGTH_SHORT).show();
}
}
}catch (Exception e){e.printStackTrace(); }
return;
日誌停止此行後工作:
FileInputStream myInput = new FileInputStream(file);
日誌文件是:
11-24 12:02:46.993 9177-9196/? E/linker: "/system/bin/app_process32": ignoring 2-entry DT_PREINIT_ARRAY in shared library!
11-24 12:02:48.055 9177-9267/? E/fb4a(:<default>):0lk: E1124 12:02:48.000000 -1703212752 xplat/liger/src/proxygen/facebook/httpclient/java/src/cpp/HTTPClient.cpp:590] failed to get socket address from :53
11-24 12:02:48.062 9177-9267/? E/fb: failed to get socket address from :53
11-24 12:02:50.857 8986-8986/razon.language E/razon.language.Home$6: selected file /storage/emulated/0/Language/Project3/task.xls
11-24 12:02:50.857 8986-8986/razon.language E/moved: Moved To /Language/Project3/
11-24 12:02:50.862 8986-8986/razon.language E/full file: /storage/emulated/0/Language/Project3/task.xls
11-24 12:02:50.862 8986-8986/razon.language E/full file: [email protected]
您是否添加了讀取存儲權限?您還需要爲此添加運行時權限,以便從棉花糖中工作 – Redman
是的,我確實。我在應用程序啓動時獲得了運行時權限。 –
你遇到的問題/錯誤是什麼? –