当前位置: 首页 > 知识库问答 >
问题:

使用apache POI在excel文件中写入单元格时出现的问题

许永年
2023-03-14

我在把数据写到excel文件时遇到了问题。我使用的是apache POI 4.1.2版本库。下面是示例代码。

    try {
        outputStream = new FileOutputStream(EXCEL_FILE_PATH);
    } catch (Exception e) {
        System.out.println("Exception While writing excel file " + e.getMessage());
    }

    Workbook workbook = new HSSFWorkbook();
    Sheet sheet = workbook.createSheet("FileCompare");

    Row row = sheet.createRow(0);

    Cell cellfilename = row.createCell(0);
    cellfilename.setCellValue("File Name");

    Cell cellfilename1 = row.createCell(1);
    cellfilename1.setCellValue("Difference in File 1");

    Cell cellfilenam2 = row.createCell(2);
    cellfilenam2.setCellValue("Difference in File 2");

    for (int diffcol = 1; diffcol < 3; diffcol++) {
        for (int i = 1; i < 57; i++) {

            Row rows = sheet.createRow(i);
            // System.out.println("Difference Coln number " + diffcol);
            Cell diffcell = rows.createCell(diffcol);
            diffcell.setCellValue("abacds");

            /*
             * Cell diffcell2 = row.createCell(2); diffcell2.setCellValue("abacds");
             */

        }
        
    }


    try {
        workbook.write(outputStream);
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        outputStream.flush();
        outputStream.close();
        workbook.close();
    }

在excel文件中保存的最后一列单元格中,以前的单元格保持为空白。请帮忙,如果我做错了什么,请告诉我?

共有1个答案

端木骞尧
2023-03-14

我不确定实际的api,但我认为内部循环应该创建列,外部循环应该创建行,如下所示

  for (int row=1:row<57;row++)
  {
     Row rows = sheet.createRow(row);
     for (int diffCol = 1; diffCol < 3; difCol++) 
     {
        Cell diffcell = rows.createCell(diffcol);
        diffcell.setCellValue("abacds");
     }
  }
 类似资料:
  • 本文向大家介绍C#读写EXCEL单元格的问题实现,包括了C#读写EXCEL单元格的问题实现的使用技巧和注意事项,需要的朋友参考一下 最近, 我在用C#开发一个EXCEL Add-In的时候,发现了一些害人不浅的坑,特来总结列举如下: 这里我读写EXCEL引用的是using Excel = Microsoft.Office.Interop.Excel;  问题一、如何判断一个单元格去除首尾空格后是不

  • 问题内容: 如何在poi的帮助下在单元格中写下我的全部价值? 即如果值是1000.000,那么我怎么能写出完整的值而不会在“之后”截断000。与POI?表示我想要全部价值。 就我而言,只需要1000,但这对我来说不是正确的格式。 问题答案: 您必须设置要存储此数字的单元格的“格式”。示例代码: 来源:http : //poi.apache.org/spreadsheet/quick- guide.

  • 我正在写一个程序,它需要从excel文件中读取和写入数据,而不考虑格式(xls或xlsx)。 我知道ApachePOI,但它似乎有不同的类来处理xls文件(HSSF)和xlsx(XSSF)文件。 任何人都知道我将如何实现我在这里的目标。(也欢迎使用POI以外的API的想法)。

  • 如何使用Apache POI将文本/图像写入特定的合并单元格。特定单元格意味着,我直接将文本或图像写入B3: D7。下面的代码是每个索引的手动代码,而不是单元格的特定名称和数量。我想通过单元格名称和编号放置。

  • 我正在使用Apache POI将Excel函数写入单元格并计算该函数。我需要做的是从单元格中删除所有小数点。目前,它在每个单元格值的末尾得到了不必要的两个零。单元格格式如下所示。但最后总是得到两个零。 我参考了以下URL和其他几个网站,但找不到修复错误的方法。 链接1 链接2 注意我将Apache POI版本3.14与Spring 4.3.1一起使用。释放。

  • 我创建了一个excel文件,并在(0,0)[行,单元格]中插入了一个新值作为Hello。第二次打开同一个excel文件,同一张表,用另一个字符串值更新了同一个(0,0)单元格。 代码正在成功运行,没有任何错误,但文件已损坏,无法打开。 代码 在调试模式下,在设置第二个值之后。SetCellValue(第二个值);我可以通过Debug查看该值。打印(cell. ToString());并且该值在控制