Apache的POI,同时使用XSSF和HSSF
-
27-09-2019 - |
题
我有与Apache POI项目的问题。
我没有使用XSSF
和HSSF
在 “同一个Java类”即可。这罐子我应该下载或我应该加入到其中的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);
不隶属于 StackOverflow