使用poi库为java在excel表中写入值的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用poi库为java在excel表中写入值的问题相关的知识,希望对你有一定的参考价值。

我从我的程序中获取值,我想将它们保存在Excel文件中,我使用poi库,我应该有9张纸,在每张单页中我必须获得一个矩阵(行*列)在我的情况下(无论如何)行数* 13列),,但我只获得1个由数组中的姓氏命名的表,并仅由列号13填充

这是方法

public static void writeExcelSheet(String categoryName) throws IOException {
    Workbook workbook=new HSSFWorkbook();
    Sheet sheet=workbook.createSheet(categoryName);
    int allength=arraylistCategory.size();

    for(int row=0;row<allength;row++){
        for(int column=0;column<13;column++){
             Cell cell=sheet.createRow(row).createCell(column);
             cell.setCellValue(arraylistCategory.get(row)[column]);
        }
    }

        FileOutputStream outputStream=new FileOutputStream("mel coef excel sheet.xls");
        workbook.write(outputStream);
        outputStream.close();



    arraylistCategory.clear();
}

你能告诉我什么是错的或错的,谢谢你提前

答案

我应该有9张

您的方法只在工作簿中创建一个工作表。假设您尝试调用此方法9次,则每次调用此方法时都会重新创建一个新的空白Workbook,每次都会覆盖该文件。这就解释了为什么你只获得数组中的姓氏。

相反,创建一次Workbook,然后将其传递给此方法,以便您可以在相同的Workbook上创建工作表。然后在最后一次调用此方法之后,将其写入FileOutputStream

并且仅由第13列填充

你这里有类似的问题。您正在为每列创建createRow(row)行。执行此操作时,您将使用新的空Row覆盖任何行,并删除除最后一个值之外的所有单元格值。在内部Row循环外部创建for,但在外部for循环内部,并在内部for循环内使用它。

for(int row = 0; row < allength; row++){
    Row currentRow = sheet.createRow(row);
    for(int column = 0; column < 13; column++){
         Cell cell = currentRow.createCell(column);
         cell.setCellValue(arraylistCategory.get(row)[column]);
    }
}

以上是关于使用poi库为java在excel表中写入值的问题的主要内容,如果未能解决你的问题,请参考以下文章

JAVA使用poi包,向Excel中写入批量数据

java poi 写入Excel后读取公式值问题

Java使用POI读取和写入Excel指南

用java 和 poi 怎么创建一个excel,然后写入数据;还有怎么在原有的一个excel里添加数据(原有数据的)?

用java的poi类读取一个excel表格的内容后再写入到一个新excel表格中的完整代码

java使用poi包将数据写入Excel表格