有没有办法使用Apache POI读取.xls和.xlsx文件?
2022-09-03 08:32:33
我需要创建一个可以读取xls和xlsx文件的方法。根据我的研究,HSSF用于读取xls,XSSF用于读取xlsx。是否有Apache POI的一部分可以用来读取这两个文件?我也遇到了ss.usermodel,但没有发现足够的代码可以同时娱乐xls和xlsx....
我需要创建一个可以读取xls和xlsx文件的方法。根据我的研究,HSSF用于读取xls,XSSF用于读取xlsx。是否有Apache POI的一部分可以用来读取这两个文件?我也遇到了ss.usermodel,但没有发现足够的代码可以同时娱乐xls和xlsx....
是的,POI 提供了一组新的接口,可用于这两种类型。
使用 WorkbookFactory.create() 方法获取 Workbook:http://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/WorkbookFactory.html
您可以使用以下命令检查Excel文件而不依赖于文件扩展名(例如,这些文件扩展名不可靠 - 例如,许多csv文件具有xls扩展名,但无法通过POI解析):
//simple way to check for both types of excel files
public boolean isExcel(InputStream i) throws IOException{
return (POIFSFileSystem.hasPOIFSHeader(i) || POIXMLDocument.hasOOXMLHeader(i));
}
我对Apache POI没有太多的exp,但据我所知,如果你通过类“Workbook”引用工作簿,那么你可以读取和编写xls和xlsx。
您所要做的就是在创建对象写入时
对于.xls-
Workbook wb = new HSSFWorkbook();
对于.xlsx-
Workbook wb = new XSSFWorkbook();
您可以传递文件类型的参数,并使用 If 语句相应地创建 WorkBook 对象。