`
zx_code
  • 浏览: 98950 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Java+Freemarker导出excel

    博客分类:
  • Java
阅读更多

在项目中使用Freemarker功能如下:

1.一般我们在项目中使用freemarker最多的是做页面功能,我们只需要model+html+freemarker标签,生成我们需要的页面。
2.我们可以使用freemarker标签功能,我们可以动态生成sql语句等等
3.我们可以使用freemarker导出excel和word等等

本文介绍freemarker导出excel功能

freemarker代码如下:
<!doctype html>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
</head>

<body>
  <table border="1">
	  <tr>
	    <th>标题1</th>
	    <th>标题2</th>
	    <th>标题3</th>
	  </tr>
	  <!--判读是否有值-->
	  <#if datas??&&((datas?size)>0)>
		  <#list datas as data>
		  <tr>
		  	<td>${data.id!''}</td>
		  	<td>${data.name!''}</td>
		  	<td>${data.age!''}</td>
		  </tr>
		  </#list>
	  </#if>
  </table>
</body>
</html>


spring配置如下:
<bean id="freeMarkerConfigurer"
		class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
		<property name="templateLoaderPath" value="/WEB-INF/freemarker/" />
		<property name="defaultEncoding" value="UTF-8" />
		<property name="freemarkerSettings" ref="freemarkerConfiguration" />
</bean>



java代码如下:
package test;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

import org.apache.taglibs.standard.tag.common.core.OutSupport;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.web.servlet.view.freemarker.FreeMarkerConfig;


import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:applicationContext.xml")
public class ExcelExport {
	
	@Resource
	private FreeMarkerConfig freeMarkerConfig;
	
	@Test
	public void exportExce()
	{
		try {
			List<Test> list = testService.queryForList();
			//指定freemarker的加载基本路径,重要
			freeMarkerConfig.getConfiguration().setDirectoryForTemplateLoading(new File("D:\\java\\test\\WebROOT\\WEB-INF\\freemarker\\"));
			
			//获取模板
			Template template = freeMarkerConfig.getConfiguration().getTemplate("admin\\excel\\test1.ftl");
			
			//xlsx最大容纳1048576行 ,csv最大容纳1048576行,xls最大容纳65536行
			//86000
			for(int i=0; i < 10; i++)
			{
				list.addAll(list);
			}

			Map<String, Object> map = new HashMap<String, Object>();
			map.put("datas", list);
			
			createExcel(template, map);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	private void createExcel(Template template, Map<String, Object> map)
	{
		try {
			Writer out = new OutputStreamWriter(new FileOutputStream("E:\\123.xlsx"));
			template.process(map, out);
		} catch (TemplateException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}


excel样式如下


注意:如果数据量大于65536甚至更大,freemarker很难分sheet导出,所以就可以生成几个excel,然后压缩并下载


欢迎交流企鹅群:211367604
  • 大小: 1.9 KB
2
2
分享到:
评论

相关推荐

    Freemarker实现excel导出功能

    在Java世界里,它也被广泛用于生成静态文档或处理数据导出任务,比如Excel文件的生成。本篇文章将详细探讨如何使用Freemarker来实现Excel导出功能,并通过实际例子加深理解。 一、Freemarker基础 1. 模板语言:...

    excel 导出 freemarker

    在Java开发中,我们经常需要处理数据的导出工作,其中Excel是最常用的数据展示和交换格式之一。FreeMarker是一款强大的模板引擎,常用于生成动态HTML、XML等文档,但也可以扩展到生成Excel文件。本教程将详细介绍...

    freemarker导出Excel、Word、HTMLdemo

    这个"freemarker导出Excel、Word、HTMLdemo"项目旨在展示如何在Java程序中集成Freemarker来创建这些不同格式的文件。 在Java中,Freemarker与ModelAndView、Velocity等模板引擎类似,它通过模板语言(Template ...

    IDEA+Springboot+gradle+Jxls导出Excel

    综上所述,"IDEA+Springboot+gradle+Jxls导出Excel"的项目组合,利用现代开发工具和技术,实现了从数据获取、处理、展示到导出的完整流程。FreeMarker和EasyUI提供了用户友好的界面,Spring Boot和Gradle构建了健壮...

    freemarker生成复杂excel,带换行

    在Java开发中,利用Freemarker生成Excel文件能够极大地提高效率,特别是处理复杂表格时,其灵活性尤为突出。本示例重点在于如何通过Freemarker实现Excel单元格内的换行功能。 首先,我们需要理解Freemarker的基本...

    freemarker-excel.rar

    2. **Freemarker与Excel导出**: 在Java开发中,通常使用Apache POI库来操作Excel文件。然而,当需要将模板和数据结合时,Freemarker可以作为POI的一个补充,帮助构建动态的Excel模板。通过Freemarker模板,开发者...

    JAVA项目代码绘制PDF和通过freemarker动态生成PDF

    对于没有使用宏、函数等word、excel,需要按模板动态生成word、excel、html,只需要一个freemarker,先将word、excel、html等另存为**xml**,即可使用模板动态生成文件,目前xlsx是不支持的 4. PdfTemplate 对于不会...

    自写FreeMarker导出数据为EXcel实例

    在本实例中,"自写FreeMarker导出数据为EXcel"是利用FreeMarker模板语言和Servlet技术来生成Excel文件,方便地导出数据。下面将详细介绍这个过程以及涉及的相关知识点。 1. **FreeMarker模板引擎**: FreeMarker是...

    java导出excel 在web项目

    Java导出Excel在Web项目中的应用是一个常见的需求,特别是在企业级开发中,为了方便数据的存储、分析和传输,往往需要将数据库中的数据导出为Excel格式。下面将详细介绍这个主题,包括相关技术和实现步骤。 1. **...

    springboot中使用freemarker动态生成word文档,以及使用POI导出自定义格式Excel

    1. 使用Apache POI 3.9 自定义样式导出Excel文件; 2. 使用freemarker动态生成word .doc文档(带图片Word以及复杂格式word) 详细说明见个人博客及 github: https://github.com/DuebassLei/excel-poi

    freemarker-excel.zip

    要实现`Freemarker`导出Excel,你需要做以下几步: 1. **创建Freemarker模板**:编写一个`.ftl`(Freemarker Template Language)文件,定义Excel表格的结构和内容。模板中可以包含变量和控制结构,如`&lt;#if&gt;`、`...

    freemarker.jar freemarker架包 freemarker生成excel、word、html、xml简单例子

    Freemarker是一个强大的模板引擎,常用于Java应用中生成动态内容,如HTML、XML、Excel、Word等。它采用简单的文本模板语言,使得非程序员也能轻易地编辑模板,与Java对象数据结合,生成所需的输出。 在Java开发中,...

    一个freemarker导出word的通用包

    总之,这个"freemarker导出word的通用包"为Java开发者提供了一个方便的工具,通过FreeMarker模板和Apache POI,可以轻松地将数据导出为Word格式,适用于报表生成、数据导出等多种场景。在实际使用过程中,可以根据...

    freemaker导出excel

    总的来说,利用Freemarker导出Excel是一种灵活且高效的方法,它允许开发者将业务逻辑与视图分离,使得代码更易于维护和扩展。通过熟练掌握Freemarker和Apache POI,你可以构建出强大的数据导出功能,满足各种复杂...

    “java+poi+模板”打造复杂excel报表.docx

    // 导出Excel报表到指定文件 public void exportExcel(String outputFile) throws IOException { // ... // 创建输出文件流并写入工作簿 FileOutputStream fos = new FileOutputStream(outputFile); workbook....

    java根据模板导出PDF详细教程(包含统计图)

    本文将深入探讨如何使用Java来根据模板导出包含统计图的PDF文档。主要涉及的技术包括iText库、FreeMarker模板引擎以及可能的数据可视化工具。 首先,iText是一个强大的Java库,专门用于创建和操作PDF文档。它提供了...

    Jett+Spring MVC实现Excel导出

    通过以上步骤,我们就可以在Spring MVC应用中集成Jett,实现动态生成和导出Excel文件的功能。这不仅可以提高用户体验,也有利于数据的管理和分析。如果你需要更多关于Jett和Spring MVC的详细信息,可以参考我的CSDN...

    Struts2+JXL 下载 Excel 文档

    此外,对于更复杂的需求,如动态生成复杂的Excel模板,可能需要结合 Velocity 或 Freemarker 等模板引擎来动态渲染Excel模板。同时,安全问题也不容忽视,例如避免XSS攻击,正确处理用户输入的数据等。 总结来说,...

    自动导出Excel并可合并行

    在IT行业中,自动导出Excel并实现行合并是一项常见的需求,尤其在数据分析、报表生成以及数据可视化等场景中。这个MyEclipse项目提供了一个解决方案,适用于任何开发工具,只要能够导入源码和第三方库即可运行。 ...

    freemarker excel下载

    在Freemarker中,我们可以利用它的模板语法和Java API来构建Excel文件的内容。首先,我们需要一个Freemarker模板,这个模板定义了Excel文件的结构和样式,比如单元格的值、格式、样式等。模板文件通常以`.ftl`为扩展...

Global site tag (gtag.js) - Google Analytics