Java导出多个excel并且打包成zip压缩文件

最近的项目有一个导出汇总数据的要求,考虑到用户软件的差异,所以要分别导出xls以及xlsx并且打包提供下载,所以有了这个博客,代码如下。

实现思路:

  1. 获取需要导出的数据;
  2. 生成对应的xls、xlsx文件流;
  3. 生成对应的zip文件,提供下载。

代码主要使用到了POI以及Hutool解压模块。

 

 

/**
	 * 利用传入的数据,生成对应的xls文件
	 * 
	 * @param data       需要导出的数据
	 * @param sheetName  sheet的名字
	 * @param titleValue excel主题(例如第一行显示:“2018-10月销售汇总”)
	 * @param headArr    标题
	 * 
	 * @return 生成的03excel工作簿
	 */
	public static <T> HSSFWorkbook exportDataTo03(List<T> data, String sheetName, String titleValue, String[] headArr)
			throws IOException, IllegalArgumentException, IllegalAccessException {
		// 新建excel
		HSSFWorkbook wb = new HSSFWorkbook();

		// 新建sheet
		HSSFSheet sheet = wb.createSheet(sheetName);
		// 1.1创建合并单元格对象
		CellRangeAddress callRangeAddress = new CellRangeAddress(0, 0, 0, headArr.length - 1);
		sheet.addMergedRegion(callRangeAddress);

		// 新建第一行表头
		HSSFRow titleRow = sheet.createRow(0);
		titleRow.setHeightInPoints(50);
		HSSFFont titleFont = wb.createFont();
		titleFont.setBold(true);
		titleFont.setFontName("微软雅黑");
		titleFont.setFontHeightInPoints((short) 35);
		// 样式
		HSSFCellStyle titleStyle = wb.createCellStyle();
		// 剧中
		titleStyle.setAlignment(HorizontalAlignment.CENTER_SELECTION);
		titleStyle.setFont(titleFont);

		HSSFCell titleCell = titleRow.createCell(0);
		titleCell.setCellStyle(titleStyle);
		titleCell.setCellValue(titleValue + "xxx");

		HSSFCellStyle hearStyle = wb.createCellStyle();
		hearStyle.setAlignment(HorizontalAlignment.CENTER_SELECTION);
		HSSFFont headFont = wb.createFont();
		headFont.setBold(true);
		headFont.setFontName("微软雅黑");
		headFont.setFontHeightInPoints((short) 50);

		HSSFRow headRow = sheet.c
  • 11
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值