gpt4 book ai didi

java - POI - Java - 使用 for 循环更新单元格

转载 作者:太空宇宙 更新时间:2023-11-04 07:11:35 25 4
gpt4 key购买 nike

我正在尝试使用 for 循环在 Excel 工作表的一列中写入值列表。

想法是,从 1 开始,每 3 张纸,我的代码写入两个可能的值。

例如:

for ( q = 0 ; q < my_xls_workbook.getNumberOfSheets(); q=+2)
{
HSSFSheet my_worksheet = my_xls_workbook.getSheetAt(1);
HSSFCell cell = null;
cell = my_worksheet.getRow(m).getCell(4);
cell.setCellValue(myStoredValue[m][2]);
input_document.close();
FileOutputStream output_file = new FileOutputStream(new File("C:\\Framework.xls"));
my_xls_workbook.write(output_file);
output_file.close();
}

其中行 m 已经是存储的值,单元格 4 是我要在其中输入值的列的第一个单元格,而 my_xls_workbook.getSheetAt(1); 是开始写入值的工作表。根据for循环,每次都会加2。

但是当我的代码运行时,我得到一个 NullPointerException POI 可以这样工作还是我做错了什么?

我正在学习java,所以我不是专家。另外请原谅我的英语。

最佳答案

在 for 循环控制中:

for ( q = 0 ; q < my_xls_workbook.getNumberOfSheets(); q=+2)

您正在使用 q 进行循环(希望这是一个 int?),但您的增量是 q=+2,它被解释为 q = +2 - 始终将 q 设置为正 2。如果您确实只想检查每第二张工作表,则应为 q += 2q = q + 2

然后,您应该更改获取工作表的方式:my_xls_workbook.getSheetAt(1) 应使用循环变量q,如下所示:my_xls_workbook.getSheetAt(q)。否则,您只是每次都获取索引 1 处的工作表,该工作表可能不存在,因此可能会返回为 null。根据 HFFSWorkbook 文档,HFFSWorkbook#getSheetAt(int) 是从 0 开始的,因此您的循环是正确的,但您的程序正在抓取索引 1,即第二张表。

关于java - POI - Java - 使用 for 循环更新单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20574576/

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