每次调用写入Excel文件的方法时,如何添加行?

时间:2019-12-05 21:28:04

标签: java apache-poi

我是Apache POI的新手,目前正在研究一个项目以写入Excel File。

每次调用此方法调用“ WriteInfo”时,如何插入新行都遇到麻烦。 结果是我再次在同一行上书写(因为第2行)。

我的代码尝试如下:

public void writeInfo(Workbook workbook, Sheet sheet, MO temp) throws IOException {
        Row row = sheet.createRow(2);
        row.createCell(0).setCellValue(temp.getFirstName());
        row.createCell(1).setCellValue(temp.getLastName());
        row.createCell(2).setCellValue(temp.getAge());
        row.createCell(3).setCellValue(temp.getBirthDay());
        row.createCell(4).setCellValue(temp.getEmail());
        row.createCell(5).setCellValue(temp.getAddress());
        // Resize all columns to fit the content size
        for(int i = 0; i < columns.length; i++) {
            sheet.autoSizeColumn(i);
        }
        // Write the output to a file
        FileOutputStream fileOut = new FileOutputStream("poi-generated-file.xlsx");
        workbook.write(fileOut);
        fileOut.close();
    }

1 个答案:

答案 0 :(得分:4)

createRow()的参数是行号,因此,您需要将不断增加的行号传递给2

,而不是在那里硬编码createRow()
private int currentRow = 2;

public void writeInfo(Workbook workbook, Sheet sheet, MO temp) throws IOException {
    Row row = sheet.createRow(currentRow++);
    ...