[英]NullPointerException on writing excel file with apache poi
[英]Trouble writing to Excel file (Apache POI)
public static String already_exists(ArrayList<String> reg_id, ArrayList<String> doc_id, ArrayList<String> status) throws RowsExceededException, WriteException, IOException{
WritableWorkbook myFirstWbook = null;
FileOutputStream out = new FileOutputStream(new File("C://Users//Desktop//OP_demo.xlsx"));
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet("Java Books");
int rowCount = 0;
int columnCount = 0;
for(int i=0;i<reg_id.size();i++)
{
Object[][] bookData={{reg_id.get(i),doc_id.get(i),status.get(i)}};
Row row = sheet.createRow(rowCount++);
//System.out.println(reg_id.get(i)+doc_id.get(i)+status.get(i));
for (Object[] aBook : bookData)
{
for (Object field : aBook)
{
org.apache.poi.ss.usermodel.Cell cell = row.createCell(columnCount++);
{
cell.setCellValue(field.toString());
}
}
workbook.write(out);
}
}
out.close();
return "";
}
上面是我用來寫入Excel文件“ OP_Demo”的代碼段。 必須使用arraylists reg_id,doc_id和status的值來填充單元格。 但是,當我運行程序時,僅索引位置0處的列表的值被寫入文件。 我是否在for循環中放了一個特定的語句?
您需要將workbook.write(out);移出循環。 workbook.write(下); 將工作簿的內容寫入文件流,處理完所有記錄后,您將需要寫入文件,否則每次執行時文件的內容都會被覆蓋。
public static String already_exists(ArrayList<String> reg_id, ArrayList<String> doc_id, ArrayList<String> status) throws RowsExceededException, WriteException, IOException{
WritableWorkbook myFirstWbook = null;
FileOutputStream out = new FileOutputStream(new File("C://Users//Desktop//OP_demo.xlsx"));
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet("Java Books");
int rowCount = 0;
int columnCount = 0;
for(int i=0;i<reg_id.size();i++)
{
Object[][] bookData={{reg_id.get(i),doc_id.get(i),status.get(i)}};
Row row = sheet.createRow(rowCount++);
//System.out.println(reg_id.get(i)+doc_id.get(i)+status.get(i));
for (Object[] aBook : bookData)
{
for (Object field : aBook)
{
org.apache.poi.ss.usermodel.Cell cell = row.createCell(columnCount++);
{
cell.setCellValue(field.toString());
}
}
}
}
workbook.write(out); // writing the workbook to file-stream outside loop
out.close();
return "";
}
您可以參考以下鏈接: https : //www.mkyong.com/java/apache-poi-reading-and-writing-excel-file-in-java/它顯示了使用讀寫excel文件的基本示例apache POI。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.