java - 有什么方法可以使用 Apache POI 读取 .xls 和 .xlsx 文件吗?

标签 java excel apache-poi

我需要创建一个可以读取 xls 和 xlsx 文件的方法。根据我的研究,HSSF用于读取xls,XSSF用于读取xlsx。我可以使用 Apache POI 的一部分来读取这两个文件吗?我也遇到了 ss.usermodel 但没有找到足够的代码来满足 xls 和 xlsx....

最佳答案

是的,POI 提供了一组适用于这两种类型的新接口(interface)。

使用 WorkbookFactory.create() 方法获取工作簿: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));
}

关于java - 有什么方法可以使用 Apache POI 读取 .xls 和 .xlsx 文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19129961/

相关文章:

java - APACHE POI EXCEL XmlException : is an invalid XML character, 有没有办法预处理excel文件?

java - apache POI 在 Excel 工作簿中添加水印

java - 使用 <c :import> with method post doesn't work

html - VBA 与网页上的单选按钮交互

java - 在数组列表中搜索最大的数字

VBA 在单元格值更改时触发宏

vba - 检查值是否存在于集合或数组中,如果不存在,则添加

java - 使用 Apache POI 处理 docx 文件中的复选框

java - 为什么我应该用 null 对象替换 null 文字?

Java 迭代器移除异常契约