【发布时间】:2014-01-09 15:28:38
【问题描述】:
我正在尝试使用 Apache POI 包编写一个 excel 文件。这是代码sn-p:
String basePath = "/home/aman/Desktop";
String fileName = "result.xls";
File file = new File(basePath, fileName); //File not null. checked.
OPCPackage pkg = OPCPackage.openOrCreate(file); //pkg not null. checked.
Workbook wb = new XSSFWorkbook(pkg); //GenerateReport.java:63
我收到以下错误:
Exception in thread "main" java.lang.NullPointerException
at org.apache.poi.POIXMLDocumentPart.read(POIXMLDocumentPart.java:382)
at org.apache.poi.POIXMLDocument.load(POIXMLDocument.java:155)
at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:186)
at amazon.category.database.GenerateReport.generateExcel(GenerateReport.java:63)
at amazon.category.database.MerchantAdoptionStats.processAdoptionStats(MerchantAdoptionStats.java:197)
at amazon.category.database.MerchantAdoptionStats.main(MerchantAdoptionStats.java:386)
任何帮助表示赞赏。
【问题讨论】:
-
我猜你误读了堆栈跟踪。
-
@ᴍarounᴍaroun 请解释一下。
-
@Reimeus
File.exists()是false,我知道该文件不存在。 -
@Reimeus 但这就是我使用
openAndCreate()的原因。 -
我认为你做错了。你为什么不从头开始创建一个新的工作簿(而不是试图从一个空文件中读取它;你正在做的是用来解析现有的电子表格),用它做任何你需要的事情,然后
.write()它到一个输出流?
标签: java apache-poi