Java 无法使用Apache POI写入Excel文件
我正在使用以下代码将数据写入excel文件:Java 无法使用Apache POI写入Excel文件,java,android,excel,apache-poi,Java,Android,Excel,Apache Poi,我正在使用以下代码将数据写入excel文件: public class WriteExcellFile { public boolean saveExcelFile(Context context, String fileName) { // check if available and not read only if (!isExternalStorageAvailable() || isExternalStorageReadOnly())
public class WriteExcellFile {
public boolean saveExcelFile(Context context, String fileName) {
// check if available and not read only
if (!isExternalStorageAvailable() || isExternalStorageReadOnly()) {
Log.d("FileUtils", "Storage not available or read only");
return false;
}
boolean success = false;
//New Workbook
Workbook wb = new HSSFWorkbook();
Cell c = null;
//Cell style for header row
CellStyle cs = wb.createCellStyle();
cs.setFillForegroundColor(HSSFColor.LIME.index);
cs.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
//New Sheet
Sheet sheet1 = null;
sheet1 = wb.createSheet("myOrder");
// Generate column headings
Row row = sheet1.createRow(0);
c = row.createCell(0);
c.setCellValue("Item Number");
c.setCellStyle(cs);
c = row.createCell(1);
c.setCellValue("Quantity");
c.setCellStyle(cs);
c = row.createCell(2);
c.setCellValue("Price");
c.setCellStyle(cs);
sheet1.setColumnWidth(0, (15 * 500));
sheet1.setColumnWidth(1, (15 * 500));
sheet1.setColumnWidth(2, (15 * 500));
// Create a path where we will place our List of objects on external storage
File file = new File(context.getExternalFilesDir(null), fileName);
FileOutputStream os = null;
try {
os = new FileOutputStream(file);
wb.write(os);
Log.d("FileUtils", "Writing file" + file);
success = true;
} catch (IOException e) {
Log.d("FileUtils", "Error writing " + file, e);
} catch (Exception e) {
Log.d("FileUtils", "Failed to save file", e);
} finally {
try {
if (null != os)
os.close();
} catch (Exception ex) {
}
}
return success;
}
public static boolean isExternalStorageReadOnly() {
String extStorageState = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(extStorageState)) {
return true;
}
return false;
}
public static boolean isExternalStorageAvailable() {
String extStorageState = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(extStorageState)) {
return true;
}
return false;
}
}
代码在logcat上运行时没有任何错误,但是当我转到应该写入excel文件的文件夹时,该文件夹是空的。我还在Android清单文件中添加了权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
在上面的一行中,如果用Environment.DIRECTORY\u DOCUMENTS替换null,则输出文件将存储在那里
在上面的一行中,如果将null替换为环境.DIRECTORY\u DOCUMENTS,则输出文件将存储在那里。该文件夹的确切路径是什么?你怎么去做?函数返回真值吗?文件夹的确切路径是什么?你怎么去做呢?函数返回真值吗?
File file = new File(context.getExternalFilesDir(null), fileName);