poi写excel空指针异常_解决方法java - NullPointerException on writing excel file with apache poi...

I am trying to load an excel file (xls) from template, set one cell's value and write it to another file. But i get this exception:

java.lang.NullPointerException

at org.apache.poi.poifs.filesystem.FilteringDirectoryNode$FilteringIterator.(FilteringDirectoryNode.java:193)

at org.apache.poi.poifs.filesystem.FilteringDirectoryNode$FilteringIterator.(FilteringDirectoryNode.java:188)

at org.apache.poi.poifs.filesystem.FilteringDirectoryNode.getEntries(FilteringDirectoryNode.java:101)

at org.apache.poi.poifs.filesystem.FilteringDirectoryNode.iterator(FilteringDirectoryNode.java:105)

at org.apache.poi.poifs.filesystem.EntryUtils.copyNodes(EntryUtils.java:74)

at org.apache.poi.poifs.filesystem.EntryUtils.copyNodes(EntryUtils.java:90)

at org.apache.poi.hssf.usermodel.HSSFWorkbook.write(HSSFWorkbook.java:1395)

at de.ajs.dailyreport.runtime.services.WorkDiaryExcel.write(WorkDiaryExcel.java:37)

at de.ajs.dailyreport.runtime.services.WorkDiaryExcelTest.someTest(WorkDiaryExcelTest.java:35)

...

(by the way a really bad message ;-))

here is the code:

public class WorkDiaryExcel {

private final Report report;

/**

* row, cell for date

*/

private static final int[] DATE_FIELD = new int[] { 7, 7 };

private HSSFWorkbook excel;

public WorkDiaryExcel(Report report) {

this.report = report;

try(HSSFWorkbook excel = new HSSFWorkbook(WorkDiaryExcel.class.getResourceAsStream("/template.xls"))) {

this.excel = excel;

HSSFSheet sheet = excel.getSheetAt(0);

sheet.getRow(DATE_FIELD[0]).getCell(DATE_FIELD[1]).setCellValue(report.getDate());

} catch (IOException e) {

throw new IllegalStateException("Problem on loading excel from template: ", e);

}

}

public void write(OutputStream out){

try {

excel.write(out);

out.flush();

out.close();

} catch (IOException e) {

throw new IllegalArgumentException("Problem on writing excel to output stream: ", e);

}

}

}

This code is called from test:

@Test

public void someTest() throws IOException {

WorkDiaryExcel to = new WorkDiaryExcel(reportMock);

FileOutputStream out = new FileOutputStream("out.xls");

to.write(out);

}

So what could cause the problem?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值