【问题标题】:Splitting data to multiple sheets Apache POI将数据拆分为多个工作表 Apache POI
【发布时间】:2014-12-16 03:41:26
【问题描述】:

我正在为我的 spring mvc webapp 使用 apache poi。我是 apache poi 的新手,我设法将数据生成到 .xls,数据是使用 model 从我的控制器传递的。

我的目标是在生成的数据数量达到 25 行时,我想继续生成下一个 25 行(26-50)到另一张表,依此类推。

@Override
protected void buildExcelDocument(Map model, HSSFWorkbook workbook,
        HttpServletRequest request, HttpServletResponse response)
        throws Exception {

    int rnum = 1;

    response.setHeader("Content-Disposition", "attachment; filename=\"" + new Date() + ".xls\"");
    List<Employee> employeeList = (List<Employee>) model.get("empRecords");//get from my controller

    HSSFSheet excelSheet = workbook.createSheet("Employee List"+rnum);
    setExcelHeader(excelSheet);
    setExcelRows(excelSheet, employeeList);
}

public void setExcelHeader(HSSFSheet excelSheet) {
    HSSFRow excelHeader = excelSheet.createRow(0);
    excelHeader.createCell(0).setCellValue("Id");
}

public void setExcelRows(HSSFSheet excelSheet, List<Employee> empList) {
    int record = 1;
    for (Employee a : empList) {
        HSSFRow excelRow = excelSheet.createRow(record++);
        excelRow.createCell(1).setCellValue(a.getId());
    }
}

以上是我到目前为止所做的,我该如何进一步进行?

【问题讨论】:

    标签: java excel apache-poi


    【解决方案1】:

    传递工作簿而不是电子表格。这将允许您在函数中创建一个新工作表。

     public void setExcelRows(HSSFWorkbook wb, List<Employee> empList) {
        int record = 1; int sheetNum = 0;
        HSSFSheet sheet = wb.createSheet("Employee List "+sheetNum);
        setExcelHeader(sheet);
        for (Employee a : empList) {
             if (record == 26){
                 sheetNum++;
                 sheet= wb.createSheet("Employee List "+ sheetNum);
                 setExcelHeader(sheet);
                 record = 1;
             }        
             HSSFRow excelRow = sheet.createRow(record++);
            excelRow.createCell(1).setCellValue(a.getId());
     }
    

    }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多