2017-05-04 66 views
1

我需要帮助将数据导出到excel文件。使用java将数据导出为ex​​cel - 没有创建行

行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。 :)

谢谢!

+0

使用System.out.println进行调试。打印出item.get(i)。 – wannadream

+0

你能简要描述一下你的Excel-Export应该是什么样子,它的细胞内容和格式等等。 – Lepidopteron

+0

@Lepidopteron我上传了excel文件的截图。我希望它有帮助。 :) – user7961010

回答

0

只是猜测。

可能是你应该最后调用sheet.addRow(row12)。 与列row12.addColumn(列)相同。 并在最后sheet.close()。

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

如果你告诉我你使用的是什么excel库,那么我可能会更具体:)