java poi导出多sheet页

/**
     * @Title: exportExcel
     * @Description: 导出Excel的方法
     * @param workbook
     * @param sheetNum (sheet的位置,0表示第一个表格中的第一个sheet)
     * @param sheetTitle  (sheet的名称)
     * @param headers    (表格的标题)
     * @param result   (表格的数据)
     * @param out  (输出流)
     * @throws Exception
     */
    public Boolean exportExcel(HSSFWorkbook workbook, int sheetNum,
                            String sheetTitle, String[] headers, List<List<String>> result,
                            OutputStream out) {
        Boolean res = false ;
       try{
           // 生成一个表格
           HSSFSheet sheet = workbook.createSheet();
           workbook.setSheetName(sheetNum, sheetTitle);
           // 设置表格默认列宽度为20个字节
           sheet.setDefaultColumnWidth((short) 20);
           // 生成一个样式
           CellStyle style = workbook.createCellStyle();
           // 设置这些样式
           style.setAlignment(HorizontalAlignment.CENTER);
           style.setVerticalAlignment(VerticalAlignment.CENTER);
           style.setBorderRight(BorderStyle.THIN);
           style.setRightBorderColor(IndexedColors.GREY_50_PERCENT.getIndex());
           style.setBorderLeft(BorderStyle.THIN);
           style.setLeftBorderColor(IndexedColors.GREY_50_PERCENT.getIndex());
           style.setBorderTop(BorderStyle.THIN);
           style.setTopBorderColor(IndexedColors.GREY_50_PERCENT.getIndex());
           style.setBorderBottom(BorderStyle.THIN);
           style.setBottomBorderColor(IndexedColors.GREY_50_PERCENT.getIndex());
           style.setFillForegroundColor(HSSFColor.PALE_BLUE.index);
       /* Font dataFont = workbook.createFont();
        dataFont.setFontName("Arial");
        dataFont.setFontHeightInPoints((short) 10);
        style.setFont(dataFont);
        style = workbook.createCellStyle();
        style.setAlignment(HorizontalAlignment.CENTER);
        style.setVerticalAlignment(VerticalAlignment.CENTER);
        style.setFillForegroundColor(IndexedColors.GREY_50_PERCENT.getIndex());*/
           style.setFillPattern(FillPatternType.SOLID_FOREGROUND);

           // 生成一个字体
           Font headerFont = workbook.createFont();
           headerFont.setFontName("Arial");
           headerFont.setFontHeightInPoints((short) 10);
           headerFont.setBold(true);
           headerFont.setColor(IndexedColors.WHITE.getIndex());
           // 把字体应用到当前的样式
           style.setFont(headerFont);

           // 指定当单元格内容显示不下时自动换行
           style.setWrapText(true);

           // 产生表格标题行
           HSSFRow row = sheet.createRow(0);
           for (int i = 0; i < headers.length; i++) {
               HSSFCell cell = row.createCell((short) i);

               cell.setCellStyle(style);
               HSSFRichTextString text = new HSSFRichTextString(headers[i]);
               cell.setCellValue(text.toString());
           }
           // 遍历集合数据,产生数据行
           if (result != null) {
               int index = 1;
               for (List<String> m : result) {
                   row = sheet.createRow(index);
                   int cellIndex = 0;
                   for (String str : m) {
                       HSSFCell cell = row.createCell((short) cellIndex);
                       cell.setCellValue(str.toString());
                       cellIndex++;
                   }
                   index++;
               }
           }
           res = true;
       }catch (Exception e){
           e.printStackTrace();
       }
       return res;
    }

测试代码:

   @SuppressWarnings("unchecked")
    public static void main(String[] args) {
        try {
            OutputStream out = new FileOutputStream("D:\test.xls");
            List<List<String>> data = new ArrayList<List<String>>();
            for (int i = 1; i < 5; i++) {
                List rowData = new ArrayList();
                rowData.add(String.valueOf(i));
                rowData.add("东霖柏鸿");
                data.add(rowData);
            }
            String[] headers = { "ID", "用户名" };
            ExportExcelUtils eeu = new ExportExcelUtils();
            HSSFWorkbook workbook = new HSSFWorkbook();
            eeu.exportExcel(workbook, 0, "采收计划信息", headers, data, out);
            eeu.exportExcel(workbook, 1, "人员配置", headers, data, out);
            eeu.exportExcel(workbook, 2, "物资配置", headers, data, out);
            //原理就是将所有的数据一起写入,然后再关闭输入流。
            workbook.write(out);
            out.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

效果图如下:
在这里插入图片描述

POI导出Excel工具类

poi API大全

原文地址:https://www.cnblogs.com/edda/p/14532321.html