无法使用ApachePOI Excel打开 - 获取异常(Unable to open excel

2019-07-31 11:51发布

当试图打开一个使用Excel的ApachePOI我得到

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(); 
  } 
}

Answer 1:

你为什么要采取一个非常好的文件,在包裹它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();


文章来源: Unable to open excel using ApachePOI - Getting Exception