java excel多个sheet页_Java根据模板导出Excel报表并复制模板生成多个Sheet页的示例代码分享(图)...

本文主要介绍了Java根据模板导出Excel报表并复制模板生成多个Sheet页的方法,具有很好的参考价值。下面跟着小编一起来看下吧

因为最近用报表导出比较多,所有就提成了一个工具类,本工具类使用的场景为 根据提供的模板来导出Excel报表

并且可根据提供的模板Sheet页进行复制 从而实现多个Sheet页的需求,

使用本工具类时,如果需求是每个Sheet页中的数据都不一致,但是表格样式和模板都一样

那么只需要在实际情况中根据 sql 来查询要添加的数据源 (只需更改数据源即可)

采用的技术为 POI 导出,因为类的缘故,目前只支持2003版本的Excel.

使用前请先下载相应jar包!

后期有时间的话会进行进一步完善,初次写工具类,若有不完善的地方还请包涵!

先看看模板样式和运行结果,然后直接上代码

这是Excel的模板样式

f973338f06456bc0badea6be32e17a72.png

这是导出结果

b629fca5c9c39b43b813c689afad4fee.png

具体实现看demo

package com.sgcc.xyz.util;

import java.io.File;

import java.io.FileInputStream;

import java.io.OutputStream;

import java.util.List;

import java.util.Map;

import javax.servlet.http.HttpServletResponse;

import org.apache.poi.hssf.usermodel.HSSFCell;

import org.apache.poi.hssf.usermodel.HSSFCellStyle;

import org.apache.poi.hssf.usermodel.HSSFRow;

import org.apache.poi.hssf.usermodel.HSSFSheet;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import org.apache.poi.hssf.util.HSSFColor;

import org.apache.poi.hssf.util.Region;

import org.apache.poi.poifs.filesystem.POIFSFileSystem;

import com.sgcc.uap.persistence.impl.HibernateDaoImpl;

/**

* 报表导出工具类

*

* @author JYLiu

@巴黎的雨季

本工具是根据POI对Excel2003进行报表导出 本工具类可根据模板进行Excel的导出

* 并且可根据提供的模板Sheet页进行复制 从而实现多个Sheet页的需求

* 使用本工具类时,如果需求是每个Sheet页中的数据都不一致,但是表格样式和模板都一样

* 那么只需要在实际情况中根据 sql 来查询要添加的数据源 (只需更改数据源即可)

*/

public class ExcelUtil {

/**

* 根据模板导出报表,可导出多个Sheet页

*

* @param 导出的Excel文件名

* @param 模板路径 (全路径)

* @param 数据源

* @param 返回请求

* @param 生成的Sheet页的名称集合

* @param 数据源中Map集合的key值 (key值对应的value值顺序要列名顺序一致)

* @param 开始 循环写入数据 的行数(从第几行开始写入数据)

*/

public static void ExcelByModel(String ExcelName, String ModelURl, List> dataSource,

HttpServletResponse response, String[] sheetNames, String[] keyNames, int rowNum) throws Exception {

// 设置导出Excel报表的导出形式

response.setContentType("application/vnd.ms-excel");

// 设置导出Excel报表的响应

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值