java - 循环在列表循环内创建行

标签 java excel netbeans apache-poi

我想制作一个像这样的 Excel 工作表:

NAME | ADDRESS | PH 
==================== 
Dad  |   IND   | 123 
Mom  |   IND   | 123 
Me   |   IND   | 123 

爸爸妈妈在列表中。我已经尝试编写代码,但似乎是错误的。它不会逐行写入,而是覆盖每个循环中的所有内容。代码如下:

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

Row row1 = sheet.createRow((short) 0);
row1.createCell(0).setCellValue("Name");
row1.createCell(1).setCellValue("Address");
row1.createCell(2).setCellValue("Ph");

List<pegawai> list_pegawai = test.list_pegawai();
int a = list_pegawai.size();
for (pegawai p : list_pegawai) {
    for (i = 1; i <= a; i++) {
         Row row2 = sheet.createRow((short) i);
         row2.createCell(0).setCellValue(p.getName());
         row2.createCell(1).setCellValue(p.getAddress());
         row2.createCell(2).setCellValue(p.getPh());
    }
}
FileOutputStream fileOut = new FileOutputStream("C:\\Users\\Documents\\workbook.xls");
wb.write(fileOut);
fileOut.close();
JOptionPane.showMessageDialog(null, "SUCCESS");

感谢你们的回答和帮助:)

最佳答案

尝试

int i = 1;
for (pegawai p : list_pegawai) {
     Row row2 = sheet.createRow(i++);
     row2.createCell(0).setCellValue(p.getName());
     row2.createCell(1).setCellValue(p.getAddress());
     row2.createCell(2).setCellValue(p.getPh());
 }

您已经在遍历列表了,无需重复两次。您不想每次都创建新的

关于java - 循环在列表循环内创建行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25717637/

相关文章:

java - Java中传入一个运算符

excel - 如何从Excel中的单元格值中减去时间文字?

java - 当 jar 通过命令行运行时,相对路径不起作用,但通过 Netbean 运行时,相对路径起作用

java - 在 Netbeans 8.0.2 和 Java 8 中使用 Apache Tika 1.9 会生成巨大的可执行文件。怎么做才能缩小尺寸?

java - 如何使用 FileRead 读取文本?

java - 国际象棋中达到目标的最少步数 - 使用 BFS 进行马遍历

java - 解析 java.lang.String 类型的 data.org.json.JSONException 值时出错,无法转换为 JSONArray

java - SAP Hybris 辅助服务模块 (ASM) - 无法生成组件

arrays - 如何连接以逗号分隔的命名范围的返回值

VBA如何在用户窗体中显示实时时钟?