Mar*_*oli 15 java excel apache-poi maven xssf
我收到此错误:
org.apache.poi.poifs.filesystem.OfficeXmlFileException:提供的数据似乎在Office 2007+ XML中.您正在调用处理OLE2 Office文档的POI部分.您需要调用POI的不同部分来处理此数据(例如,XSSF而不是HSSF)
我读了扔谷歌,我发现我需要使用XSSF而不是HSSF,因为我的Excel文件是xlsx,但正如你在我的maven中看到的,我已经在使用xlsx了.我哪里出错了?
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.13-beta1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
产生异常的代码是:
POIFSFileSystem fs;
fs = new POIFSFileSystem(new FileInputStream(getFilePath()));
Run Code Online (Sandbox Code Playgroud)
public void getBColum() {
try {
OPCPackage fs;
fs = new OPCPackage.open(new File(getFilePath()));
XSSFWorkbook wb = new XSSFWorkbook(fs);
XSSFSheet sheet = wb.getSheet("Master column name - Used Car");
XSSFRow row;
CellReference cr = new CellReference("A1");
row = sheet.getRow(cr.getCol());
System.out.println(row.getCell(3));
} catch (FileNotFoundException e) {
if (logger.isDebugEnabled()) {
logger.debug("How can this error be possible? we should have already thrown an exception in the construction");
}
} catch (IOException e) {
logger.error(String.format("Exception in reading the file: %s",
e.getMessage()));
}
}
Run Code Online (Sandbox Code Playgroud)
我有一个编译错误,new oPCPackage.open其中:
OPCPackage.open无法解析为某种类型
rge*_*man 35
根据Apache POI快速指南,POIFSFileSystem(或类似地NPOIFSFileSystem)仅与.xls(Excel版本到2003)文档一起使用.
.xlsx文档(Excel 2007+)的等价物是OPCPackage.
OPCPackage pkg = OPCPackage.open(new File("file.xlsx"));
Run Code Online (Sandbox Code Playgroud)
您可以创建一个XSSFWorkbook自OPCPackage:
XSSFWorkbook wb = new XSSFWorkbook(pkg);
Run Code Online (Sandbox Code Playgroud)
或者您可以直接创建它:
XSSFWorkbook wb = new XSSFWorkbook(new File("file.xlsx"));
Run Code Online (Sandbox Code Playgroud)
通常,最好使用a File而不是a来创建工作簿InputStream,以节省内存.
此外,如果您想要的代码不关心它是.xls还是.xlsx:
// or "file.xlsx"
Workbook wb = WorkbookFactory.create(new File("MyExcel.xls"));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
56369 次 |
| 最近记录: |