gpt4 book ai didi

java - Groovy/POI 在不同系统上返回不同的迭代器

转载 作者:行者123 更新时间:2023-11-30 07:33:17 26 4
gpt4 key购买 nike

我有以下代码。其目的是使用 POI 运行 xls 文件并将所有数据写入 txt 文件。

for ( sheetNumber in 0..numberOfSheets-1) {
HSSFSheet sheet = workBook.getSheetAt(sheetNumber)
Iterator<HSSFRow> rows = sheet.rowIterator()
while(rows.hasNext()){
row = rows.next()
Iterator<HSSFCell> cells = row.cellIterator();
println "cell:" + cells.toString()
while(cells.hasNext()){
cell = cells.next()
allEntityFile << cell.toString()
}
allEntityFile << "\n"
}
}

这段代码在我的机器上工作正常,但在另一台电脑上似乎有问题。我把范围缩小到这个。当我尝试创建单元格迭代器时

Iterator<HSSFCell> cells = row.cellIterator();

我的系统返回

org.apache.poi.hssf.usermodel.HSSFRow$CellIterator@156b386

这是我所期望的。在另一个系统上它返回以下内容

java.util.HashMap$ValueIterator@38fff7

关于这种差异有什么想法吗?

最佳答案

您确定您在两个系统上运行的是相同版本的 POI 吗?你在两者上都使用 HSSF 吗?

最新版本的 HSSF 应该总是返回一个 org.apache.poi.hssf.usermodel.HSSFRow$CellIterator 给你。

使用 XSSF,您返回的迭代器取自 TreeMap(它是值迭代器),因此我不希望使用 HashMap 迭代器,但我希望使用 java.util 迭代器

这让我觉得你可能没有在两个地方使用相同版本的 POI

参见 POI FAQ了解如何检查您正在为 POI 使用哪个 jar 文件

关于java - Groovy/POI 在不同系统上返回不同的迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5957256/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com