java导出excel文件(压缩后导出)

本文介绍了两种在Java中导出Excel文件的方法,包括直接导出和详细格式化的导出方式,后者涉及到逐个设置单元格格式和边框。
摘要由CSDN通过智能技术生成

 
相信很多人在项目过程中都会遇到将数据导出到excel中的需求,对于这个问题,首先此文章讲述的是自己使用的方法:我是通过poi导出的2003版的excel表格 

方法一:代码如下

public File writeExcel(List<Map<String,Object>> writeContent,String titleList[],String userId) {
		WritableWorkbook book = null;
  		File file = new File(nfsUrl+userId+"/"+"outSourceExport1.zip");//首先需要创建一个zip包
		try {
			// 打开文件
			book = Workbook.createWorkbook(file);
			// 参数0表示这是第一页
			int linenum = 0;
			WritableSheet sheet = book.createSheet("催收导出数据", 0);
			for(int i=0;i<titleList.length;i++){
				sheet.addCell(new Label(i, linenum, titleList[i]));
			}
			linenum ++;
			if(writeContent!=null && !writeContent.isEmpty()){//此处是传进来的自己的数据(就是要写到excel中的数据集合)
				for(int i=0; i<writeContent.size(); i++){
					Map<String, Object> columnMap = writeContent.get(i);
					Iterator iter = columnMap.entrySet().iterator();
					int y = 0;
					while (iter.hasNext()) {
						Map.Entry entry = (Map.Entry) iter.next();
						Object key = entry.getKey();
						Object val = entry.getValue();
						if(val!=null){sheet.addCell(new Label(y, linenum, val.toString()));}else{sheet.addCell(new Label(y, linenum, null));}
						y ++;
					}
					linenum ++;
				}
			}
			// 写入数据并关闭文件
			book.write();
		} catch (Exception e) {
			System.out.println(e);
		}finally{
			if(book!=null){
				try {
					book.close();
				} catch (Exception e) {
					e.printStackTrace();
				} 
			}
		}
		return file;
	}
调用

public String  getFile(T_L000800 tL000800){
    
            //此处是自己要写入的数据集合,自己查出来即可
			List<Map<String,Object>> resultList = jdbcTemplate.queryForList(sqlColumnBuilder.toString());
			//调用上面的写入excel方法(此处的resultList:是自己的数据集合,titleList是excel中的title,最后一个参数是我需要的,可以不传)
			File exportFile = writeExcel(resultList,titleList,tL000800.getTuserId());
			if(exportFile.exists()){
				//加载导出文件,先创建一个outputStream(这里是因为我没有传入response,若用response的话直接ServletOutputStream out = response.getOutputStream()获取输出流即可)
				FileOutputStream out = new FileOutputStream(new File(nfsUrl+tL000800.getTuserId()+"/"+"outSourceExport.zip"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值