Java 导出Excel利用模版导出

Java导出Excel和word的方式大体相同

1、Excel模版导出到页面下载

首先,导入依赖在pom.xml中我选择的事1.03的版本

           第二、在项目或是自己需要的地方建立个文件夹放导出文件的模版,并且配好模版

          

      第三,controller层写入export方法,这里我写的没有将可以作为工具的部分单独写一块而是直接写在controller的方法中这样更直观,并且是使用注解的方式进行的项目配置

    @RequestMapping("/export")
    private void export(Queryable queryable, PropertyPreFilterable propertyPreFilterable, HttpServletRequest request,HttpServletResponse response) throws Exception {
        //根据系统的需要获取数据源
       	List<Model> resultList = pagejson.getResults();
       	//获得模版
		String tempFileName = request.getSession().getServletContext().getRealPath("/excelTemplate");
        //将结果放入这个list中
		List values = new ArrayList();
		Map beans = new HashMap();
		Date date = new Date();
		SimpleDateFormat simpl = new SimpleDateFormat("yyyyMMddHHmmss");
		String currntTime = simpl.format(date);
		tempFileName += "/policyDemo.xls";

		//导出列表名
		String fileName = currntTime+"列表.xls";
		values.addlist);
		beans.put("values", values);

        //文件名称统一编码格式
		fileName = URLEncoder.encode(fileName, "utf-8");
		
		//生成的导出文件
		File destFile = File.createTempFile(fileName, ".xls");
		
		//transformer转到Excel
		XLSTransformer transformer = new XLSTransformer();
		
		BufferedInputStream bis = null;
		BufferedOutputStream bos = null;
		try {
            //将数据添加到模版中生成新的文件
			transformer.transformXLS(tempFileName, beans, destFile.getAbsolutePath());
            //将文件输入
			InputStream inputStream = new FileInputStream(destFile);
			// 设置response参数,可以打开下载页面
			response.reset();
            //设置响应文本格式
			response.setContentType("application/vnd.ms-excel;charset=utf-8");
			response.setHeader("Content-Disposition",
					"attachment;filename=" + new String((fileName + ".xls").getBytes(), "iso-8859-1"));
			//将文件输出到页面
            ServletOutputStream out = response.getOutputStream();
			bis = new BufferedInputStream(inputStream);
			bos = new BufferedOutputStream(out);
			byte[] buff = new byte[2048];
			int bytesRead;
			// 根据读取并写入
			while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
				bos.write(buff, 0, bytesRead);
			}
		} catch (ParsePropertyException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (InvalidFormatException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
            //使用完成后关闭流
			try {
				if (bis != null)
				    bis.close();
				if (bos != null)
					bos.close();
			} catch (IOException e) {
			}
		
		}
	}

如果用配置文件的方式的话response不用写了 在配置文件那写一下输出类型就可以了

  • 第四、在页面上做一个导出按钮或是其他的触发,如果想用ajax去导出的话需要做特殊处理,正常返回是不会下载的,建议用同步的方式。

	var result = $.param(queryParams);
	location.href="prolicy/export?"+result;//这里的result则是选取的查询条件
	}

  • 6
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Java导出Excel模板可以使用POI(Apache的开源项目)来实现。POI提供了一套Java API,用于操作Excel文件。 首先,我们需要在项目中引入POI的依赖。可以使用Maven或Gradle来管理依赖,具体请参考POI的官方文档。 接下来,我们可以创建一个自定义的Excel模板,包含需要导出的数据列和样式。可以使用Excel软件(如Microsoft Excel)来创建模板文件,并定义每列的标题、样式等。 在Java代码中,我们可以通过POI提供的API来读取模板文件,并将数据填充到合适的位置。具体步骤如下: 1. 创建一个Workbook对象,用于表示Excel文件。可以选择使用HSSFWorkbook(针对旧版本的Excel文件)或XSSFWorkbook(针对新版本的Excel文件)。 2. 使用Workbook对象创建Sheet对象,用于表示工作表。 3. 创建Row对象,用于表示Excel中的一行数据。 4. 创建Cell对象,用于表示每个单元格。 5. 设置单元格的值和样式。可以使用setCellValue方法设置值,并使用CellStyle类来设置样式,如字体、颜色、边框等。 6. 重复步骤4和5,直到所有数据都被写入到Excel文件中。 7. 使用FileOutputStream或其他输出流将Workbook对象写入到磁盘中,即导出Excel文件。 需要注意的是,POI提供了丰富的API用于操作Excel文件,可以根据具体需求进行调整和优化。同时,还可以通过POI的API来处理更多的Excel操作,如合并单元格、设置公式、设置条件格式等。 总之,使用Java导出Excel模板可以通过POI来实现,按照一定的步骤从模板中读取数据并填充到Excel文件中。这样可以方便地生成包含特定数据和样式的Excel文件,满足不同的导出需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

任玉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值