JavaExcel模板下载(多sheet)

本文介绍了一种使用Java实现的双Sheet Excel模板下载方法,包括如何创建带有两个工作表的Excel文件,其中一个工作表为空,另一个从资源池获取数据。通过示例代码详细展示了设置表头、填充数据、导出Excel的过程。

之前本来做好的模板下载只是个半成品,这回我尊敬的领导又提出了新要求 需要下载模板两个sheet 第一张空表 第二张从某资源池中获取并呈现数据,为了能有更好的客户体验,辛苦一点儿也是应该的,不说了 上代码


 

 

    @GetMapping("/download")
	@ResponseBody
	@RequiresPermissions("o:x:download")
	public void exportPbxcjhppExcel( HttpServletRequest request ,HttpServletResponse response){
		String fileName = "e.xlsx";
		String filePath = apiProperties.getFilePath()+Const.FILEPATHFILE+fileName; //上传路径
		NewExcelExport excelExport = null;
		try{
			excelExport = new NewExcelExport();
			OutputStream out = new FileOutputStream(filePath);
			String[] sheet1 = { "客户", "描述","份额" ,"预算","线","所属","备注"};
			List<List<String>> Data1 = new ArrayList<List<String>>();
			String[] sheet2 = { "客户名称(客户资源池内查找)"};
			List<List<String>> data2 = Lists.newArrayList();
			List<String> list = xiaoshouService.getCustomerPool();
			for (String s : list) {
				List<String> rowData = new ArrayList<>();
				rowData.add(s);
				waterData.add(rowData);
			}

			//3、生成格式是xlsx可存储103万行数据,如果是xls则只能存不到6万行数据
			XSSFWorkbook workbook = new XSSFWorkbook();
			//第一个表格内容
			excelExport.exportExcel(workbook, 0, "sheet1", sheet1, Data1, out);
			//第二个表格内容
			excelExport.exportExcel(workbook, 1, "客户名称", sheet2, data2, out);

			filePath = java.net.URLDecoder.decode(filePath,"utf-8");
			response.setCharacterEncoding("utf-8");
			response.setContentType("multipart/form-data");
			response.setHeader("Content-Disposition", "attachment;fileName=" + setFileDownloadHeader(request, fileName));
			workbook.write(out);
			FileUtils.writeBytes(filePath, response.getOutputStream());

			//将所有的数据一起写入,然后再关闭输入流。
			out.close();
		}catch (Exception e){
			e.printStackTrace();
		}
	}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值