我从hashmap获取数据。我想使用POI将它添加到excel文件中。但问题是程序只在excel中添加最后一项。但在调试时给出所有值。 这是我的代码
for (int j = 0; j < proList.size(); j++) {
HashMap hashMap = proList.get(j);
Iterator<Object> iterator = hashMap.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, String> entry = (Map.Entry<String, String>) iterator.next();
rows=sheet1.createRow(j+1);
cc=rows.createCell(j);
cc.setCellValue(entry.getValue());
}
}
答案 0 :(得分:2)
看起来你应该在外部循环中创建行。 您可能需要为列提供单独的索引。
for (int j = 0; j < proList.size(); j++) {
HashMap hashMap = proList.get(j);
rows=sheet1.createRow(j+1);
Iterator<Map.Entry<String, String>> iterator = hashMap.entrySet().iterator();
int col = 0;
while (iterator.hasNext()) {
Map.Entry<String, String> entry = iterator.next();
cc=rows.createCell(col++);
cc.setCellValue(entry.getValue());
}
}
答案 1 :(得分:0)
您使用j作为索引,它在while循环中永远不会递增。因此它始终只创建一行。
注意:您使用的索引'j'来自while循环之外的for循环声明。它的限制只有prolist.size()!我认为你应该在while循环中使用一个单独的索引。