首页 > 其他分享 >批量导出Excel打包成压缩包

批量导出Excel打包成压缩包

时间:2024-01-16 14:58:19浏览次数:26  
标签:zipOutputStream pgTeachingSchedulingCurriculumQry Excel excelWriter 导出 pgSchoolC

PgSchoolCalendarWeekManagePageQry pgSchoolCalendarWeekManagePageQry = new PgSchoolCalendarWeekManagePageQry();
pgSchoolCalendarWeekManagePageQry.setPgSemesterManageId(pgTeachingSchedulingCurriculumQry.getPgSemesterManageId());
pgSchoolCalendarWeekManagePageQry.setStudentType(pgTeachingSchedulingCurriculumQry.getStudentType());
List<PgSchoolCalendarWeekManageListVO> schoolCalendarWeekManageListVOList = pgSchoolCalendarWeekManageService.getList(pgSchoolCalendarWeekManagePageQry).getData();
if (!CollectionUtils.isEmpty(schoolCalendarWeekManageListVOList)) {
ServletOutputStream outputStream = response.getOutputStream();
ZipOutputStream zipOutputStream = new ZipOutputStream(outputStream);
for (PgSchoolCalendarWeekManageListVO pgSchoolCalendarWeekManageVo : schoolCalendarWeekManageListVOList) {
pgTeachingSchedulingCurriculumQry.setStartDate(pgSchoolCalendarWeekManageVo.getWeekStartDate());
pgTeachingSchedulingCurriculumQry.setEndDate(pgSchoolCalendarWeekManageVo.getWeekEndDate());
MultiResponse<PgTeachingSchedulingCurriculumVO> pgTeachingSchedulingCurriculumVO = pgTeachingSchedulingCurriculumService.getCurriculumList(pgTeachingSchedulingCurriculumQry);
List<PgTeachingSchedulingCurriculumVO> pgTeachingSchedulingCurriculumVOList = pgTeachingSchedulingCurriculumVO.getData();
List<XsxExportVO> xsxExportVOList = getExcelData(pgTeachingSchedulingCurriculumVOList);
String titleExcel = "学术型硕士研究生";
if (!StringUtils.isEmpty(pgTeachingSchedulingCurriculumQry.getPgSemesterManageId())) {
String pgSemesterManageName = pgSemesterManageService.get(new PgSemesterManageInfoQry(pgTeachingSchedulingCurriculumQry.getPgSemesterManageId())).getData().getSemesterName();
titleExcel += pgSemesterManageName;
}
if (!StringUtils.isEmpty(pgTeachingSchedulingCurriculumQry.getSchoolCalendarWeekId())) {
PgSchoolCalendarWeekManageVO pgSchoolCalendarWeekManageVO = pgSchoolCalendarWeekManageService.get(new PgSchoolCalendarWeekManageInfoQry(pgSchoolCalendarWeekManageVo.getSchoolCalendarWeekId())).getData();
titleExcel += pgSchoolCalendarWeekManageVO.getWeekNumberName();
if (pgSchoolCalendarWeekManageVO.getWeekStartDate() != null) {
titleExcel += "(" + DateUtils.parseDateToStr("MM月dd日", pgSchoolCalendarWeekManageVO.getWeekStartDate());
}
if (pgSchoolCalendarWeekManageVO.getWeekEndDate() != null) {
titleExcel += "至" + DateUtils.parseDateToStr("MM月dd日", pgSchoolCalendarWeekManageVO.getWeekEndDate()) + ")课程表";
}
}
XsxExportTitleVO xsxExportTitleVO = new XsxExportTitleVO();
xsxExportTitleVO.setTitle(titleExcel);
String fileName = "Lesson";
try {
response.setCharacterEncoding("utf-8");
response.setContentType("application/zip");
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8") + ".zip");

ClassPathResource couponOrderTemplateResource = new ClassPathResource("template/xsxExport.xlsx");
ExcelWriter excelWriter = EasyExcel
.write()
.withTemplate(couponOrderTemplateResource.getInputStream())
.registerWriteHandler(new CustomCellWriteHandler())
.inMemory(true)
.build();
//创建第一个sheet
WriteSheet sumEvaSheet = EasyExcel.writerSheet("课程表").build();
FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build();
// 标题
excelWriter.fill(new FillWrapper("title", Arrays.asList(xsxExportTitleVO)), sumEvaSheet);
excelWriter.fill(new FillWrapper("lesson", xsxExportVOList), fillConfig, sumEvaSheet);
//创建压缩文件
ZipEntry zipEntry = new ZipEntry(titleExcel + ".xlsx");
zipOutputStream.putNextEntry(zipEntry);
Workbook workbook = excelWriter.writeContext().writeWorkbookHolder().getWorkbook();
//将excel对象以流的形式写入压缩流
workbook.write(zipOutputStream);
excelWriter.close();
} catch (Exception e) {

}
}
zipOutputStream.closeEntry();
zipOutputStream.flush();
//关闭数据流,注意关闭的顺序
zipOutputStream.close();
outputStream.close();
}

标签:zipOutputStream,pgTeachingSchedulingCurriculumQry,Excel,excelWriter,导出,pgSchoolC
From: https://www.cnblogs.com/niuniu0108/p/17967623

相关文章

  • Oracle数据导入,导出方式
    什么是数据库导入导出?Oracle数据库的导入/导出,就是我们通常所说的Oracle数据的还原/备份。数据库导入:把.dmp格式文件从本地导入到数据库服务器中。数据库导出:把数据库服务器中的数据,导出到本地生成.dmp格式文件。Oracle数据导入导出方式与优缺点传统方式:exp(导出)和im......
  • node-xlsx将excel转Table
    constxlsx=require('node-xlsx')constfs=require('fs');constexcelFilePath='./menu.xlsx'constsheets=xlsx.parse(excelFilePath);constsheet=sheets[0];s='<table>'sheet.data.forEach((row,index......
  • 轻松导航:教你在Excel中添加超链接功能
    前言超链接是指在网页或电子文档中常见的元素,它的主要作用是将一个文本或图像与另一网页、文件或资源链接起来,从而使用户能够通过点击该链接跳转到目标资源、超链接可以起到导航以及引用的作用。超链接通常有以下几种用途:网页链接文档链接内部定位链接电子邮件链接在Java......
  • 如何使用Java在Excel中添加动态数组公式?
    本文由葡萄城技术团队发布。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。前言动态数组公式是Excel引入的一项重要功能,它将Excel分为两种风格:Excel365和传统Excel(2019或更早版本)。动态数组功能允许用户从单个单元格中的公式......
  • python使用OpenPyXl库对Excel进行操作
    python使用OpenPyXl库对Excel进行操作参考:知乎文章/OpenPyXL教程/博客园目录python使用OpenPyXl库对Excel进行操作1.基本概念2.判断文件是否存在3.创建和打开Excel文件3.1.创建Excel文件3.2.打开已有的Excel文件4.储存数据5.sheet操作6.cell操作1.基本概念在Open......
  • 一文看懂Excel纵向查找函数VLOOKUP
    VLOOKUP函数是Excel中的一个纵向查找函数,它与LOOKUP函数和HLOOKUP函数属于一类函数,在工作中都有广泛应用,例如可以用来核对数据,多个表格之间快速导入数据等函数功能。功能是按列查找,最终返回该列所需查询序列所对应的值;与之对应的HLOOKUP是按行查找的。  参数解析 ......
  • [转帖]oracle导出千万级数据为csv格式
    当数据量小时(20万行内),plsqldev、sqlplus的spool都能比较方便进行csv导出,但是当数据量到百万千万级,这两个方法非常慢而且可能中途客户端就崩溃,需要使用其他方法。一、sqluldr2工具1.优缺点优点:高效;支持功能较多;用户只需有对应表查询权限;可以在从库执行缺点:目前已没有再维......
  • easyexcel 下载
    1,依赖<!--3.1.1及以上可以支持分批下载--><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.1.1</version></dependency>2,编码通用步骤:1,构建sheet:设置sheet名称、格式2,构建Exce......
  • Excel中使用VBA写个函数,包含什么文字就显示什么文字。
    需求如下:Excel的D列是包含文字,E列是显示文字,也即是对应表。B列是数据,C列写公式呈现结果。若B列的文字包含了D列其中某个单元格的文字,同时若E列对应行有文字,就显示E列的对应文字,否则显示D列的对应文字。   由于Excel的VBA年代久远,很少使用,因此决定使用AI来生成。一开......
  • 使用 Python 将数据写入 Excel 工作表
    在数据处理和报告生成等工作中,Excel表格是一种常见且广泛使用的工具。然而,手动将大量数据输入到Excel表格中既费时又容易出错。为了提高效率并减少错误,使用Python编程语言来自动化数据写入Excel表格是一个明智的选择。Python作为一种简单易学且功能强大的编程语言,其丰富的......