无法使用ApachePOI打开Excel-获取异常

尝试使用ApachePOI打开Excel时,我得到

org.apache.poi.openxml4j.exceptions.InvalidOperationException: Can't open the

specified file: 'C:\Users\mdwaipay\AppData\Local\Temp\poifiles\poi-

ooxml-1570030023.tmp'

我检查了。没有创建这样的文件夹。我正在使用Apache POI 3.6版。

有什么帮助吗?类似的代码在其他工作区中运行良好。在这里不知所措。

码:

public Xls_Reader(String path) {

this.path=path;

try {

fis = new FileInputStream(path);

workbook = new XSSFWorkbook(fis);

sheet = workbook.getSheetAt(0);

fis.close();

}

catch (Exception e)

{ e.printStackTrace();

}

}

回答:

您为什么要制作一个非常好的文件,将其包装在中InputStream,然后要求POI必须为您缓冲整个文件,以便可以进行随机访问?如果直接将文件直接传递给POI,生活会好很多,因此可以根据需要跳过它!

如果要同时使用XSSF(.xlsx)和HSSF(.xls),请将代码更改为

public Xls_Reader(String path)  { 

this.path = path;

try {

File f = new File(path);

workbook = WorkbookFactory.create(f);

sheet = workbook.getSheetAt(0);

} catch (Exception e) {

e.printStackTrace();

}

}

如果您仅需要XSSF支持,并且/或者需要完全控制何时关闭资源,请执行类似的操作

OPCPackage pkg = OPCPackage.open(path);

Workbook wb = new XSSFWorkbook(pkg);

// use the workbook

// When you no longer needed it, immediately close and release the file resources

pkg.close();

以上是 无法使用ApachePOI打开Excel-获取异常 的全部内容, 来源链接: utcz.com/qa/399626.html

回到顶部