jxls模板导出excel
来源:互联网 发布:留学低龄化 知乎 编辑:程序博客网 时间:2024/04/29 02:13
先前有介绍POI工具导excel,缺点是excel样式控制比较麻烦。现在介绍模板方式导出excel.
这种方式控制控制样式比较好。先来看一个简单模板test_xtl.xls如下:
从上面的模板可以看出,我们需要在后台准备数据ListMap,它是一个Map的key对象名字,引用了一个Map.
excelMap.put("listMap", testDomain);
这里的Map的value就是我们需要的数据对象,它可以是普通的java对象,例如下面例子中引用的对象TestDomain ,
- public class TestDomain {
- private List<Domain> domainList1 ;//sheet1的基础数据
- private List<Domain> domainList2 ;//sheet2的基础数据
- public List<Domain> getDomainList() {
- return DomainList;
- }
- public void setDomainList(
- List<Domain> DomainList) {
- this.DomainList = DomainList;
- }
- public List<Domain> getDomainList2() {
- return DomainList2;
- }
- public void setDomainList2(
- List<Domain> DomainList2) {
- this.DomainList2 = DomainList2;
- }
- }
这里的Domain是个普通的javabean, 4个字段分别是name,c1,c2,remarks.
本文介绍jxl在web应用中的导出功能,下面是主要的代码:
- public void export(){
- HttpServletResponse response = WebContext.getResponse();
- HttpServletRequest request = WebContext.getRequest();
- String basePath = request.getSession().getServletContext().getRealPath("");
- //放置excel模板文件的位置
- basePath = basePath+"/xls_templates/";
- InputStream is = null;
- try {
- is = new BufferedInputStream(new FileInputStream(basePath+"test_xtl.xls"));
- } catch (FileNotFoundException e1) {
- e1.printStackTrace();
- }
- TestDomain testDomain=getSheetsData();
- //listMap在模板中引用的名字
- Map map=new HashMap();
- excelMap.put("listMap", testDomain);
- //关联模板
- XLSTransformer transformer = new XLSTransformer();
- HSSFWorkbook workBook = transformer.transformXLS(is, excelMap);
- //设置每个sheet的名字
- String []sheetNames={"sheet_name1","sheet_name2"};
- for(int i=0;i<sheetNames.length;i++){
- workBook.setSheetName(i,sheetNames[i],HSSFWorkbook.ENCODING_UTF_16);
- }
- //输出excel
- String filename="abcdef.xls";
- saveWorkbook(workBook,response,filename);
- try {
- is.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- private void saveWorkbook(HSSFWorkbook resultWorkbook,HttpServletResponse response,String fileName){
- try{
- response.setHeader("content-disposition", "attachment; filename="+fileName);
- response.setContentType("application/msexcel");
- OutputStream os =response.getOutputStream();
- resultWorkbook.write(os);
- os.flush();
- os.close();
- }catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
0 0
- jxls模板导出excel
- jxls模板导出excel
- Excel 模板导出---JXLS
- JXLS模板导出EXCEL
- JXLS-----JXLS导出Excel
- jxls 使用模板文件导出生成excel
- 利用JXLS根据模板导出Excel实例教程
- 使用jxls按模板导出excel数据
- 利用JXLS根据模板导出Excel实例教程
- jxls读取模板导出Excel学习笔记
- JXLS模板导出excel--简单版
- JXLS模板导出excel--项目版
- jxls使用模板导出Excel表格
- JXLS-----JXLS导出Excel实例
- java操作excel之jxls导出excel模板数据
- Jxls 导出excel
- Jxls 导出excel
- jxls导出excel
- 基于qvfb的应用小程序开发
- C# 多线程操作控件
- 最简单最专业的windows编程入门
- Xcode插件制作
- WPF触发器
- jxls模板导出excel
- php调用基于soap的webserver
- Automated Builds on Docker Hub
- VC程序:应用程序无法启动,因为应用程序的并行配置不正确
- Apache 2.4+php5.x+mysq5.xl环境搭建(三)
- 如何在html静态页面中使用struts2标签
- (DS 《算法竞赛入门经典》)UVA 11997 K Smallest Sums
- JSON解析 http://johncookie.iteye.com/blog/1140186
- 详解C#委托,事件与回调函数