jeecg将excel打包zip导出

针对新的需求,将原本单个Excel导出改为一次性导出多个Excel文件。由于HTTP请求限制,不能多次输出,于是采用将所有Excel打包成Zip文件的方式进行导出。文中提供相关代码实现。
摘要由CSDN通过智能技术生成

            最近接到这样的需求:原先excel导出只需要导出一个excel,需求变更为,需要一次导出多个excel文档。但是一个请求只能输出一次,所以无法通过输出流循环将excel导出。转而改为将excel文档全部打包,输出zip文档。

代码如下:

@RequestMapping(params = "exportXlsT")
	public void exportXlsT(SeatEntity rowSeat, HttpServletRequest request, HttpServletResponse response,DataGrid dataGrid, ModelMap map) {

		String rowSeatId = request.getParameter("id");
		String hql = "from SeatResultEntity where 1 = 1 AND ROW_SEAT_ID = ? ";
		List<SeatResultEntity> seatResultList = this.systemService.findHql(hql, rowSeatId);

		String codedFileName = "模板";
		String meetingName = "模板";
		try {
			File template = new File(this.context.getRealPath("/template"), "template.xls");

			List<HSSFWorkbook> hssfWorkbookList = new ArrayList<>();
			List<String> xlsNameList = new ArrayL
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,你需要安装 jeecg-boot 平台并创建一个新项目。然后,你需要创建一个数据表并向其中添加数据。接下来,你需要创建一个模板文件来指定你希望在导出Excel 文件中包含哪些数据。 一旦你准备好了模板文件,你可以使用以下代码将 Excel 文件导出zip 包格式: ```java //创建一个新的工作薄 Workbook wb = new XSSFWorkbook(); //在工作薄中创建一个新的Sheet Sheet sheet = wb.createSheet("Sheet1"); //从数据库中获取数据 List<Object[]> dataList = getDataFromDB(); //创建行,填充数据 int rowIndex = 0; for (Object[] data : dataList) { Row row = sheet.createRow(rowIndex++); row.createCell(0).setCellValue(data[0].toString()); row.createCell(1).setCellValue(data[1].toString()); row.createCell(2).setCellValue(data[2].toString()); } //将工作薄写入临时文件 File tempFile = File.createTempFile("temp", ".xlsx"); FileOutputStream fos = new FileOutputStream(tempFile); wb.write(fos); fos.close(); //将临时文件压缩成zip文件 File zipFile = new File("data.zip"); ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(zipFile)); ZipEntry entry = new ZipEntry("data.xlsx"); zos.putNextEntry(entry); FileInputStream fis = new FileInputStream(tempFile); byte[] buffer = new byte[1024]; int len; while ((len = fis.read(buffer)) > 0) { zos.write(buffer, 0, len); } fis.close(); zos.closeEntry(); zos.close(); tempFile.delete(); ``` 以上代码将从数据库中获取数据,创建一个新的工作薄,将数据填充到工作薄中,并将工作薄写入临时文件。然后,它将临时文件压缩为一个 zip 文件,并将其保存到本地文件系统中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值