我有数据存储在ArrayList中,我想在excel工作簿中以多个工作表编写该数据。 我能够在excel工作簿中写入数据,但是它在同一张表中写入。 截至目前,我能够以下列方式写入数据,如下图所示:
但我想将数据分成多张, 数据应该从标题i,e S.NO,Col1 ... Col6中断,当出现这种情况时,数据应写入新表。
我正在使用此代码将数据写入excel
for (int i = 0; i < listOfResults.size(); i++) {
row = sheet.createRow(i);
for (int j = 0; j < 7; j++) {
cell = row.createCell(j);
if (j + add < listOfResults.size()) {
cell.setCellValue(listOfResults.get(j + add));
}
}
add += 7;
}
请帮助..
答案 0 :(得分:1)
这不是一个POI问题,而是一个中断逻辑问题。
您的代码
quint16(0)
这里没有任何东西可以检测标题行,因此您不会创建新工作表。您需要检测中断,然后创建一个新工作表,并将每个标题的行索引重置为零。
修改后的代码
for (int i = 0; i < listOfResults.size(); i++) {
row = sheet.createRow(i);
for (int j = 0; j < 7; j++) {
cell = row.createCell(j);
if (j + add < listOfResults.size()) {
cell.setCellValue(listOfResults.get(j + add));
}
}
add += 7;
}
另一个问题是你在主循环中运行的次数太多了。你正在为每个单元循环一次,但你真的想要每行循环一次。这就是在第一个循环中将列表长度(单元格数)除以7(每行单元格数)的原因。
答案 1 :(得分:0)
您可以检查当前元素是否像S.NO. 如果是,则必须打开新表并继续写。