[英]Apache POI, using both XSSF and HSSF
我有Apache POI项目的问题。
我没能在“Same Java Class”中使用XSSF
和HSSF
。 我应该下载哪个jar或者我应该将哪些工件添加到maven中?
我想同时处理xls
和xlsx
文件。 当我得到excel版本错误时,我会将XSSF更改为HSSF或HSSF更改为XSSF 。
我怎样才能做到这一点?
不要这样做,尝试使用Apache POI 3.7的新版本,它有SS包,可以处理HSSF和XSSF而不用担心类型
除了“标准”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.");
}
使用工厂代替处理xssf和hssf
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
Workbook wb = WorkbookFactory.create(new File("file"))
这对我有用:
filePath = "C:\Users\user1\workspace\myproject\Excel.xlsx"
String extension = FilenameUtils.getExtension(filePath);
System.out.println(extension);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.