2016-07-20 126 views
1

我使用下面的代码将数据写入到Excel文件中写入Excel文件:无法使用Apache POI

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 Manifest文件中添加了权限。

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
+0

该文件夹的确切路径是什么?你怎么去呢? – greenapps

+0

该函数是否返回true? – greenapps

回答

0
File file = new File(context.getExternalFilesDir(null), fileName); 

在上面行,如果要更换空与Environment.DIRECTORY_DOCUMENTS那么你的输出文件将在被存储在那里。