以下是我的功能
public static void writeOutputExtraInfo(
HueIfxModuleMasterStruct<OutputEngineIfxJobMasterStruct>
ifxModuleMasterStruct, String filePath)
throws InvalidFormatException, IOException {
File file = new File(filePath);
//XSSFWorkbook workbook = (XSSFWorkbook)WorkbookFactory.create(file);
XSSFWorkbook workbook = new XSSFWorkbook(file);
writeOutputExtraBasicInfo(ifxModuleMasterStruct, workbook);
FileOutputStream fileOutputStream = new FileOutputStream(new File(filePath));
workbook.write(fileOutputStream);
fileOutputStream.close();
workbook.close();
}
我收到以下错误
org.apache.poi.POIXMLException: java.lang.NullPointerException
at org.apache.poi.POIXMLDocument.getProperties(POIXMLDocument.java:159) ~[poi-ooxml-3.13.jar:3.13]
at org.apache.poi.POIXMLDocument.write(POIXMLDocument.java:210) ~[poi-ooxml-3.13.jar:3.13]
有人能说出代码有什么问题。
答案 0 :(得分:0)
你能这样试试吗?
Workbook workbook = WorkbookFactory.create(new FileInputStream(filePath));
因此,从FileInputStream获取Workbook实例。
答案 1 :(得分:0)
在xavFWorkbook的构造函数的javadoc中有一条注释:
完成工作簿的使用后,您应该关闭 通过调用POIXMLDocument.close()打包,以避免遗留文件 处理打开。
所以我的猜测是异常是由于文件是打开的,而不是因为它存在。