2010-11-24 195 views
6

我有一个Apache POI项目的问题。Apache POI,同时使用XSSF和HSSF

我在“相同Java类”中未能使用XSSFHSSF。我应该下载哪个jar文件或者我应该添加哪些工件添加到maven中?

我想同时处理xlsxlsx文件。当我遇到excel版本错误时,我会将XSSF更改为HSSFHSSF更改为XSSF

我该怎么做?

回答

12

而是这样做的,尽量使用Apache POI 3.7的新版本,它具有SS包,它可以同时处理HSSF和XSSF无需担心类型

详情点击这里:http://poi.apache.org/spreadsheet/index.html

+0

首先感谢您的帮助。 我检查了你提到的页面。好。我在我的pom.xml中添加下面的代码: org.apache.poi POI-的contrib 3.7 beta3版 然而,尽管我的Java类仍然无法解析XSSFWorkbook? HSSFWorkbook()上没有问题;工作簿[] wbs = new Workbook [] {new HSSFWorkbook(),new XSSFWorkbook()}; – 2010-11-24 20:43:58

+5

XSSFWorkbook在groupId中:org.apache.poi,artifactId:poi-ooxml – rlovtang 2010-11-24 21:48:23

5
从“标准

除了“SS一揽子解决方案,你也可以简单地用一个if statement向右workbook format正确装入一个Workbook interface对象,像这样:

Workbook workbook; //<-Interface, accepts both HSSF and XSSF. 
File file = new File("YourExcelFile.xlsx"); 
if (FileUtils.getFileExt(file).equalsIgnoreCase("xls")) { 
    workbook = new HSSFWorkbook(new FileInputStream(file)); 
} else if (FileUtils.getFileExt(file).equalsIgnoreCase("xlsx")) { 
    workbook = new XSSFWorkbook(new FileInputStream(file)); 
} else { 
    throw new IllegalArgumentException("Received file does not have a standard excel extension."); 
} 
0

使用工厂代替其^ h andles both xssf and hssf

import org.apache.poi.ss.usermodel.Workbook; 
import org.apache.poi.ss.usermodel.WorkbookFactory; 

Workbook wb = WorkbookFactory.create(new File("file")) 
相关问题