当前位置: 首页 > 知识库问答 >
问题:

有没有办法把两者都读出来。xls和。使用Apache POI的xlsx文件?

呼延英奕
2023-03-14

我需要创建一个可以读取xls和xlsx文件的方法。根据我的研究,HSSF用于读取xls,XSSF用于读取xlsx。我是否可以使用Apache POI的一部分来读取这两个文件?我也遇到了党卫军。usermodel,但找不到足够的代码来支持xls和xlsx。。。。

共有3个答案

赖星驰
2023-03-14

您可以使用apache提供的poi ooxml和poi ooxml模式JAR进行读取。

并使用以下代码:--

Workbook wb = null;
excelFileToRead = new FileInputStream(fileName);
wb = WorkbookFactory.create(excelFileToRead); 
Sheet sheet = wb.getSheet(sheetName);

上述代码将读取xls和xlsx文件

韩羽
2023-03-14

我对Apache POI没有太多经验,但据我所知,如果您按类“工作簿”引用工作簿,那么您可以读写这两个xls

您所要做的就是创建对象写入

对于xls公司-

Workbook wb = new HSSFWorkbook();

对于xlsx-

Workbook wb = new XSSFWorkbook();

您可以传递文件类型的参数,并使用If语句相应地创建工作簿对象。

高恺
2023-03-14

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

使用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));
}
 类似资料:
  • 我正在写一个程序,它需要从excel文件中读取和写入数据,而不考虑格式(xls或xlsx)。 我知道ApachePOI,但它似乎有不同的类来处理xls文件(HSSF)和xlsx(XSSF)文件。 任何人都知道我将如何实现我在这里的目标。(也欢迎使用POI以外的API的想法)。

  • GeoFire与实时数据库紧密耦合,而地理查询是许多希望迁移到FireStore的应用程序的常见功能依赖项。有没有办法在Firestore环境中复制位置的散列/检索?

  • 我相信这三种类型的确认由于生产者属性仅限于领导者和生产者,我希望生产者在消费者通过kafka broker消费来自存储/队列的消息时收到具体的消息。还请纠正我,如果我在制作人的“acks”属性上有错误,它的默认值是“-1”,它确认所有副本是否已接收/存储消息,但它是否与消费者有关,或者我们是否可以在消费者提交且Kafka向制作人发送确认时创建一个桥梁?

  • 问题内容: 它似乎没有该属性,但是对我来说真的很有用。 问题答案: 你必须改变状态的的小部件从到 之后 进入或:

  • 我在Ubuntu14版本上使用Java1.7版本的STS下运行我的代码,尽管我已经通过添加Apache POI3.9版本和3.2版本的所有JAR测试了两个以下的程序,但我无法解决这个问题。但每次它都给出几乎相同的错误 好心地建议我一些事情,提前谢谢。 我得到的错误是 下面的代码用于从文件中读取数据 上面的代码生成了这个错误

  • 我想知道是否有办法简化这个?我是Java流的新手,我尝试使用Map,但我使用了传统的for循环。