簡體   English   中英

如何使用Apache POI用來自數組列表的數據填充Excel工作表

[英]How to populate an Excel sheet with the data from an arraylist using Apache POI

如何使用Apache POI用來自數組列表的數據填充Excel工作表?

public String exporttoexcel(UserDetails user) throws Exception {

    System.out.print("Inside serviceimpl.ExportToExcel method");
    HSSFWorkbook wb = new HSSFWorkbook();
    HSSFSheet sheet = wb.createSheet("new sheet");
    HSSFRow row = sheet.createRow((short)0);

        List<UserDetails> lstUserDetail = getUserDetailList();

        for (int i=0; i<lstUserDetail.size(); i++) {

            UserDetails lstUserDetail1 = lstUserDetail.get(i);

            String a=lstUserDetail1.getStrUserName();
             System.out.print("useridddd is"+a);

             HSSFCell cell = row.createCell((short) 0);
                cell.setCellValue(lstUserDetail1.getStrUserId());
                cell.setCellValue(lstUserDetail1.getStrUserName());
                cell.setCellValue(lstUserDetail1.getStrEMail());
                cell.setCellValue(lstUserDetail1.getStrUserStatus());
                cell.setCellValue(lstUserDetail1.getStrUserRole());

         }
         FileOutputStream fileOut = new FileOutputStream("workbook.xls");
        wb.write(fileOut);
        fileOut.close();

       System.out.print("file created");

       return null;
        }

您已經創建了一個單個單元格,並且每次都在同一單個單元格中輸入所有值。

您需要進行兩個循環。 一個用於遍歷行,另一個用於遍歷列。 雖然我還沒有測試過...使用下面的代碼。

 for(int RowNum=0; RowNum<MaxArrayLength;RowNum++){
    HSSFRow row = sheet.createRow(RowNum);
    for(int ColNum=0; ColNum<ArrayWidth;ColNum++){
        HSSFCell cell = row.createCell(ColNum);
        cell.setCellValue(ArrayList[RowNum][ColNum]);
     }
 }
    FileOutputStream fileOut = new FileOutputStream("your file path");
            XSSFWorkbook workbook = new XSSFWorkbook();
            XSSFSheet sheet = workbook.createSheet("sheet name");
            try {

    //creating the headers          
                Row row = sheet.createRow(0);
                row.createCell(0).setCellValue("name");
                row.createCell(1).setCellValue("Name1");                    
                row.createCell(2).setCellValue("name2");

    //get the list which u want
                List<String> list = getNamesList();                         
            int rowNum = 1;
            for (Name name : list ) {
                Row row1 = sheet.createRow(rowNum++);
        row1.createCell(0).setCellValue((name.get..));

}
                workbook.write(fileOut);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM