使用java将数据导出到excel - 没有创建任何行

时间:2017-05-04 04:46:33

标签: java excel

我需要帮助将数据导出到excel文件。

第12行的单元格工作正常,但rowItems的单元格根本不显示任何内容。

代码应该从数据库中导出项目列表及其属性。

    Row row12 = sheet.createRow(11);
    Cell c12[] = new Cell[maxCols];

    for(int i = 0; i <c12.length; i++){
        c12[i] = row12.createCell(i);
        c12[i].setCellStyle(tableHeader2Bottom);
    }

    c12[0].setCellValue("1");
    c12[1].setCellValue("2");
    c12[2].setCellValue("3");
    c12[3].setCellValue("");
    c12[4].setCellValue("4");
    c12[5].setCellValue("5");
    c12[6].setCellValue("6");
    c12[7].setCellValue("7");
    c12[8].setCellValue("8");
    c12[9].setCellValue("9");
    c12[10].setCellValue("10");
    c12[11].setCellValue("11");
    c12[12].setCellValue("13");
    c12[13].setCellValue("14");
    c12[14].setCellValue("15");
    c12[15].setCellValue("16");

    Row rowItems[] = new Row[items.size()];
    Cell cItems[][] = new Cell[items.size()][maxCols];
    int startRow = 11;
    int endRow = 0;
    if(items.size() == 0){
        endRow = startRow;
    }
    for(int i = 0; i < items.size(); i++){
        rowItems[i] = sheet.createRow(i+startRow);
        for(int j = 0; j < cItems[i].length; j++){
            cItems[i][j] = rowItems[i].createCell(j);
            cItems[i][j].setCellStyle(borderedCell);
        }
        cItems[i][0].setCellValue(items.get(i).getName());
        cItems[i][1].setCellValue(1);
        cItems[i][2].setCellValue(items.get(i).getUnitCost());
        cItems[i][3].setCellValue(items.get(i).getUnitCost());
        cItems[i][4].setCellValue(items.get(i).getClassNumber());
        cItems[i][5].setCellValue(items.get(i).getPropertyNumber());
        cItems[i][6].setCellValue(items.get(i).getDateAcquired());
        cItems[i][7].setCellValue("");
        cItems[i][8].setCellValue("");
        cItems[i][9].setCellValue("");
        cItems[i][10].setCellValue("");
        cItems[i][11].setCellValue("");
        cItems[i][12].setCellValue("");
        cItems[i][13].setCellValue("");
        cItems[i][14].setCellValue("");
        cItems[i][15].setCellValue("");
        endRow = (i+startRow);
    }

screenshot of what it should look like

cItems [0] [0] = A13,cItems [0] [1] = B13 ,. 。

循环应该获取数据库中的每个项目并从第13行开始显示它。

顺便说一句,我使用的是Apache POI。 :)

谢谢!

1 个答案:

答案 0 :(得分:0)

猜猜。

可能你最后应该调用sheet.addRow(row12)。 列row12.addColumn(列)也是如此。 最后是sheet.close()。

所有这些只是猜测,我可能完全错了;)。

如果你告诉我你正在使用什么excel lib,那么我可能会更具体:)