gpt4 book ai didi

java - csv 到 java 中超过 65536 行的 xls

转载 作者:行者123 更新时间:2023-11-29 06:02:50 24 4
gpt4 key购买 nike

我有一个读取 csv 文件并将其转换为 xls 文件的 java 程序:

String file2 = "myFile.csv";
FileInputStream fis2 = new FileInputStream(file2);
DataInputStream myInput2 = new DataInputStream(fis2);
String thisLine;
arList = new ArrayList();
while ((thisLine = myInput2.readLine()) != null) {
al = new ArrayList();
String strar[] = thisLine.split(",");
for (int j = 0; j < strar.length; j++) {
al.add(strar[j]);
}
arList.add(al);
i++;
}

HSSFWorkbook hwb = new HSSFWorkbook();
HSSFSheet sheet = hwb.createSheet("new sheet");

for (int k = 0; k < arList.size(); k++) {
ArrayList ardata = (ArrayList) arList.get(k);
HSSFRow row = sheet.createRow((short) 0 + k);

for (int p = 0; p < ardata.size(); p++) {
HSSFCell cell = row.createCell((short) p);
cell.setCellValue(ardata.get(p).toString());
}
}

FileOutputStream fileOut = new FileOutputStream(file2.replace("csv", "xls"));
hwb.write(fileOut);
fileOut.close();
myInput2.close();
fis2.close();

但是,我有一个超过 65536 行的 CSV,因此上面的代码会导致错误。

我可以对上面的代码做些什么来处理超过 65536 行的 csv。

感谢阅读!

最佳答案

您的问题可能出在 HSSFSheet 类中。在这一行

HSSFRow row = sheet.createRow((short) 0 + k)

您正在调用一个带有短参数的方法。 short 类型只有 2 个字节长,因此该类最多只能存储 65,535 行。

如果您有权访问该类,则可以重构它,使用 int 甚至 long。

关于java - csv 到 java 中超过 65536 行的 xls,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9515025/

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