2020-11-26导出excel多个sheel导出

@RequestMapping("/exportStudyInfoDetail")
    public void exportStudyInfoDetail(HttpServletResponse response,String siteId,Long mapId,String orgCode,String realName,String certificateNo,String orgName, String batchName,
            String projectName,String subjectName,Long batchId,String teacherNo,String state,String otherOrgName,String ic,String trainYears){
        SiteInfo site = SiteInfo.get(SiteInfo.class, Long.parseLong(siteId));
        Long serviceId = ServiceHolder.getServiceId();
        Map<String, Object> paramMap = new HashMap<String, Object>();
        ReportStatisticsVO reportStatistics = new ReportStatisticsVO();
        if (realName != null && !("".equals(realName))) {
             realName = setByte(realName);
             reportStatistics.setRealName(realName);
         }
         
        paramMap.put("reportStatistics", reportStatistics);
        String[] str =new String[]{};
   
            str =new String[]{"序号","市","区县","单位名称","科室名称","人员学期表","姓名","专业","教师证号","身份证号","联系电话","账号","项目名称",
                    "项目总学时","达标学时","已学学时","未学学时","学习状态","学习进度","结业考试成绩","是否达标"};

        List<ReportStatisticsVO> userList=iReportStatisticsService.getStudyInfoDetailList(site.getId(), serviceId, orgCode ,paramMap);
        int i;
        int k;
        /**
         * k表示sheet工作表的张数
         */
        int dataSizeNum=userList.size();    //减去表头
        if (dataSizeNum%EXCEL_EXPORT_PARAM==0){
            k=userList.size()/EXCEL_EXPORT_PARAM;
        }else {
            k=userList.size()/EXCEL_EXPORT_PARAM+1;
        }
        HSSFWorkbook book = new HSSFWorkbook();
        HSSFCellStyle sheetStyle = setSheetStyle(book);
        
            for (int t=0; t<k; t++){
                int titleNum=t+1;
               // HSSFSheet sheet = setSheetStyle(book,sheetStyle,"人员信息",str);
                HSSFSheet sheet = setSheetStyle(book,sheetStyle,"人员信息"+titleNum,str);
                for(i=0;i<EXCEL_EXPORT_PARAM;i++){

                    int j = 0;
                    HSSFRow r = sheet.createRow(i+1);
                    j=j++;
                        int num=(t*EXCEL_EXPORT_PARAM)+i;
                        if (num>=userList.size()){
                            break;
                        }
                        ReportStatisticsVO user = userList.get(num);
                            r.createCell(j++).setCellValue(i+1);
                            r.createCell(j++).setCellValue(user.getCityName());//市
                            r.createCell(j++).setCellValue(user.getAreaName());//区县
                            r.createCell(j++).setCellValue(user.getOrgName());//单位名称

                            r.createCell(j++).setCellValue(user.getProjectName());//项目名称
                            r.createCell(j++).setCellValue(user.getZongclasshour().toString());//总学时
                            r.createCell(j++).setCellValue(user.getDabiao().toString());//达标学时
                            r.createCell(j++).setCellValue(user.getYixue().toString());//已学
                            r.createCell(j++).setCellValue(user.getWeixue().toString());//未学
                            r.createCell(j++).setCellValue(user.getState());//学习状态
                            r.createCell(j++).setCellValue(user.getFinishper().toString()+"%");//学习进度
                            r.createCell(j++).setCellValue(user.getScore());//成绩
                            r.createCell(j++).setCellValue(user.getIsDabiao());//是否达标
            
                
            }
        
        }
        
        response.setContentType("application/vnd.ms-excel");
        response.addHeader("Content-Disposition", "attachment;filename=\"export_studyInfoDetail.xls\"");
        try {
            book.write(response.getOutputStream());
        } catch (IOException e) {
            e.printStackTrace();
        }
        
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要修改导出Excel表格中的字体颜色,可以使用 `xlsx-style` 库提供的 `createStyle` 方法,创建一个包含字体颜色信息的样式对象,然后将该样式对象应用到需要设置字体颜色的单元格上。 以下是一个示例代码: ```javascript import XLSX from 'xlsx-style'; import { writeFileSync } from 'fs'; const data = [ ['Name', 'Age', 'Gender'], ['Alice', 25, 'Female'], ['Bob', 30, 'Male'], ['Charlie', 35, 'Male'], ]; // 创建包含字体颜色的样式对象 const style = XLSX.utils.createStyle({ font: { color: { rgb: 'FF0000' } }, // 设置字体颜色为红色 }); // 将样式应用到第二行第一列的单元格 const cell = { s: { r: 1, c: 0 }, e: { r: 1, c: 0 } }; // 选取第二行第一列的单元格 const sheet = XLSX.utils.aoa_to_sheet(data); sheet[cell.s] = { ...sheet[cell.s], s: style }; // 应用样式到单元格上 // 导出Excel文件 const book = XLSX.utils.book_new(); XLSX.utils.book_append_sheet(book, sheet); const buffer = XLSX.write(book, { type: 'buffer' }); writeFileSync('output.xlsx', buffer); ``` 在上面的代码中,我们首先使用 `createStyle` 方法创建了一个样式对象,其中通过 `font.color.rgb` 属性设置了字体颜色为红色。然后,我们使用 `aoa_to_sheet` 方法将数据转换为工作表对象,选取第二行第一列的单元格,并将样式应用到该单元格上。最后,使用 `write` 方法将工作簿对象导出Excel文件。 需要注意的是,`xlsx-style` 库仅支持导出 `.xlsx` 格式的Excel文件,如果需要导出 `.xls` 格式的Excel文件,可以考虑使用其他库,如 `node-xlsx`。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值