zoukankan      html  css  js  c++  java
  • 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大全

  • 相关阅读:
    Python基础
    SQL脚本
    PDF技术之-jasperreports的使用
    redis缓存和mysql数据库如何保证数据一致性
    理解MySQL的乐观锁,悲观锁与MVCC
    intellj idea创建maven项目一直处于加载的解决问题
    Linux目录详解,软件应该安装到哪个目录
    总结
    总结
    总结
  • 原文地址:https://www.cnblogs.com/edda/p/14532321.html
Copyright © 2011-2022 走看看