我对 Apache POI 项目有疑问。
我没有在"Same Java Class"XSSF
中使用and 。我应该下载哪个 jar 或者我应该将哪个工件添加到 maven 中?HSSF
我想同时处理xls
和xlsx
文件。当我收到 excel 版本错误时,我会将XSSF 更改为 HSSF或HSSF 更改为 XSSF。
我怎样才能做到这一点?
我对 Apache POI 项目有疑问。
我没有在"Same Java Class"XSSF
中使用and 。我应该下载哪个 jar 或者我应该将哪个工件添加到 maven 中?HSSF
我想同时处理xls
和xlsx
文件。当我收到 excel 版本错误时,我会将XSSF 更改为 HSSF或HSSF 更改为 XSSF。
我怎样才能做到这一点?
与其这样做,不如尝试使用新版本的 Apache POI 3.7,它有 SS 包,可以同时处理 HSSF 和 XSSF 而无需担心类型
详情在这里: http: //poi.apache.org/spreadsheet/index.html
除了“标准”SS 包解决方案之外,您还可以简单地使用 anif 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);