我正在尝试使用 Apache POI 将数据从我的 jsp 导出到 excel。我需要的列数取决于两个参数,因此,我通过查询获取它。
对于 EX:如果需要的动态列数 = 3,那么输出应该是这样的。
A | B | DH1 | DH2 | DH3 | C
这里 A、B、C = 静态列标题。
DH = 动态列标题(从查询中获取。)
为此,我最初设置了 A、B、C,然后找到所需的 DH 列数。然后我生成 DH 列。之后,我找出每个 DH 列中需要的值,将该值存储在 Arraylist 中,然后遍历 Arraylist 并设置该值。
这里的代码
HSSFCell c1= row.createCell(0);
HSSFCell c2= row.createCell(1);
HSSFCell cellObject = null;
oRecordMetaInfo = getNoofDynamicColumns();
NoofColumns = oRecordMetaInfo.getRecordCount();
for(int i = 2; i < NoofColumns + 2; i++)
{
cellObject = row.createCell((int) i);
}
HSSFCell c3 = row.createCell((int) (NoofColumns + 2));
c1.setCellValue(" A ");
c2.setCellValue(" B ");
Array1 = new ArrayList();
Array1 = dao.getDynamicColumnValues();
If(Array1.size != 0)
{
QueryRow oRow = null;
Iterator oIt = null;
oIt = Array1.iterator();
while (oIt.hasNext()) {
oRow = (QueryRow) oIt.next();
oRow.get("DYNAMIC_VALUE");
cellObject.setCellValue(oRow.get("DYNAMIC_VALUE").getString());
}
}
c3.setCellValue(" C ");
但是,我得到的输出是
A | B | | | DH3 | C
因此,只有最后一个值被设置在单元格中,而不是前一个值。任何人都可以提出什么问题吗?