java用freemarker实现导出excel

前几天做了jxl导出excel,现在用freemarker做一下

freemarker导出excel和导出word步骤和是实现方法是相同的。

1.制作excel模板

2.将后缀名改为ftl,放到对应的位置下

3.实现方法

  1 package org.lq.ssm.gp.controller;
  2
  3 import java.io.BufferedWriter;
  4 import java.io.File;
  5 import java.io.FileOutputStream;
  6 import java.io.IOException;
  7 import java.io.OutputStreamWriter;
  8 import java.io.Writer;
  9 import java.util.ArrayList;
 10 import java.util.HashMap;
 11 import java.util.List;
 12 import java.util.Map;
 13
 14 import org.lq.ssm.entity.LandUser;
 15 import org.springframework.web.bind.annotation.RequestMapping;
 16
 17 import freemarker.template.Configuration;
 18 import freemarker.template.Template;
 19 import freemarker.template.TemplateException;
 20 import freemarker.template.TemplateExceptionHandler;
 21
 22 public class exportExcel {
 23
 24     private Configuration configuration = null;
 25
 26     public exportExcel(){
 27          configuration = new Configuration();
 28          configuration.setDefaultEncoding("utf-8");
 29     }
 30     //@RequestMapping(params="print")
 31     public void print() throws IOException {
 32
 33          configuration = new Configuration();
 34          configuration.setDefaultEncoding("utf-8");
 35          // 要填入模本的数据文件
 36         Map dataMap = new HashMap();
 37         //getData(dataMap);
 38
 39         List<Map<String, Object>>list=new ArrayList<Map<String,Object>>();
 40         for(int i=0;i<10;i++){
 41             Map<String, Object>map=new HashMap<String, Object>();
 42             map.put("userName", "张三");
 43             map.put("landName", "张三");
 44             map.put("landScmj", "111111");
 45             map.put("landBzdate", "20170626");
 46             list.add(map);
 47         }
 48         dataMap.put("list", list);
 49
 50         // 设置模本装置方法和路径,FreeMarker支持多种模板装载方法。可以重servlet,classpath,数据库装载,
 51           // 这里我们的模板
 52         //configuration.setDirectoryForTemplateLoading(new File("G:\\"));
 53
 54
 55         configuration.setClassForTemplateLoading(this.getClass(), "/org/lq/ssm/gp/controller");
 56          //设置异常处理器
 57         configuration.setTemplateExceptionHandler(TemplateExceptionHandler.IGNORE_HANDLER);
 58         Template t = null;
 59         try {
 60              // test.ftl为要装载的模板
 61             t = configuration.getTemplate("land.ftl");
 62             t.setEncoding("utf-8");
 63
 64         } catch (IOException e) {
 65             e.printStackTrace();
 66         }
 67         // 输出文档路径及名称
 68         File outFile = new File("G:/TTT/land.xls");
 69         Writer out = null;
 70
 71         try {
 72             out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), "utf-8"));
 73         } catch (Exception e1) {
 74             e1.printStackTrace();
 75         }
 76
 77         try {
 78             t.process(dataMap, out);
 79             out.close();
 80         } catch (TemplateException e) {
 81             e.printStackTrace();
 82         } catch (IOException e) {
 83             e.printStackTrace();
 84         }
 85     }
 86
 87
 88
 89     /**
 90      * 注意dataMap里存放的数据Key值要与模板中的参数相对应
 91      * @param dataMap
 92      * @throws IOException
 93      *
 94      */
 95
 96     public static void main(String[] args) throws IOException {
 97
 98         exportExcel exc=new exportExcel();
 99         exc.print();
100     }
101
102 }

4.excel表格就好了。但是可能在打开文件的时候,出现错误。

这时候修改模板内容,找到

将值改大一点,就可以了。

时间: 2024-11-08 19:00:53

java用freemarker实现导出excel的相关文章

Java利用POI导入导出Excel中的数据

     首先谈一下今天发生的一件开心的事,本着一颗android的心我被分配到了PB组,身在曹营心在汉啊!好吧,今天要记录和分享的是Java利用POI导入导出Excel中的数据.下面POI包的下载地址http://poi.apache.org/download.html,有兴趣的朋友也可以去看看其中的API.      下面分享一下在对POI进行基本操作时觉得需要注意的两点:       1.POI中针对xlsx/xls是需要create different Workbook instance

Java 用Freemarker完美导出word文档(带图片)

Java  用Freemarker完美导出word文档(带图片) 前言 最近在项目中,因客户要求,将页面内容(如合同协议)导出成word,在网上翻了好多,感觉太乱了,不过最后还是较好解决了这个问题. 准备材料 1.word原件 2.编辑器(推荐Firstobject free XML editor) 实现步骤 1.用Microsoft Office Word打开word原件: 2.把需要动态修改的内容替换成***,如果有图片,尽量选择较小的图片几十K左右,并调整好位置: 3.另存为,选择保存类型

Excel导出学习之道:Java Web利用POI导出Excel简单例子

采用Spring mvc架构: Controller层代码如下 [java] view plaincopy @Controller public class StudentExportController{ @Autowired private StudentExportService studentExportService; @RequestMapping(value = "/excel/export") public void exportExcel(HttpServletReq

java 通过Apache poi导出excel代码demo实例

package com.zuidaima.excel.util; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.

Java中导入、导出Excel

一.介绍 当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统.银行系统).或者是:我们已经习惯用Excel打印.这样在我们实际的开发中,很多时候需要实现导入.导出Excel的应用. 目前,比较常用的实现Java导入.导出Excel的技术有两种Jakarta POI和Java Excel 下面我就分别讲解一下如何使用这两个技术实现导入.导出Excel 二.使用Jakarta POI导入.导出Excel Jakarta POI

Java报表工具FineReport导出EXCEL的四种API

在实际的应用中会经常需要将数据导出成excel,导出的方式除原样导出还有分页导出.分页分sheet导出和大数据量导出.对于excel 2003版,由于限制了每个sheet的最大行数和列数,大数据量导出时会默认时分多个sheet,而excel2007不会出现这样的问题.这些导出方式在JAVA程序中分别有不同的接口来实现:   1.原样导出 原样导出就是不预览直接导出excel 其程序接口代码如下:  outputStream = new FileOutputStream(new File("E:\

Java报表工具FineReport导出EXCEL的四种方式

在实际的应用中会经常需要将数据导出成excel,导出的方式除原样导出还有分页导出.分页分sheet导出和大数据量导出.对于excel2003版,限制了每个sheet的最大行数和列数,大数据量导出时会默认时分多个sheet,而excel2007不会出现这样的问题.这些导出方式在JAVA程序中分别有不同的接口来实现: 1.  原样导出 原样导出就是不预览直接导出excel 其程序接口代码如下: outputStream = new FileOutputStream(new File("E:\\Exc

[转]Java中导入、导出Excel

原文地址:http://blog.csdn.net/jerehedu/article/details/45195359 一.介绍 当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统.银行系统).或者是:我们已经习惯用Excel打印.这样在我们实际的开发中,很多时候需要实现导入.导出Excel的应用. 目前,比较常用的实现Java导入.导出Excel的技术有两种Jakarta POI和Java Excel 下面我就分别讲解一

java中使用poi导出excel表格数据并且可以手动修改导出路径

在我们开发项目中,很多时候会提出这样的需求:将前端的某某数据以excel表格导出,今天就给大家写一个简单的模板. 这里我们选择使用poi导出excel: 第一步:导入需要的jar包到 lib 文件夹下 jar包下载路径:http://download.csdn.net/download/pumpkin09/7077011 第二步:添加poi导出工具类 1 package com.yjd.admin.util; 2 3 import java.io.IOException; 4 import ja