# freemarker-excel
**Repository Path**: itzg/freemarker-excel
## Basic Information
- **Project Name**: freemarker-excel
- **Description**: 利用freemarker模板导出复杂excel
- **Primary Language**: Java
- **License**: AGPL-3.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 13
- **Forks**: 7
- **Created**: 2021-07-16
- **Last Updated**: 2025-06-24
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# freemarker-excel
利用freemarker模板导出复杂excel
模板:
结果:
模板是什么样 导出的就是什么样
不是xml重名xlsx版本
输出真实的xlsx格式excel
office打开不会报错
version:0.1.5
原作者:csdn 大脑补丁
原作者教程:https://blog.csdn.net/x541211190/article/details/105629749
发布修复作者:ZGIT
csdn:https://blog.csdn.net/u014299266
v0.1.5
1.修复读取xml异常
2.修复填充列宽异常
3.修复合并单元格格式异常
4.添加表格填充颜色适配
5.添加文字颜色适配
v0.1.6
1.修复浏览器导出文件名后缀错误
maven项目引入:
cn.eonml
freemarker-excel
0.1.6
简单使用方法:
使用office软件编写复杂模板 然后导出为xml
将此xml文件 应用到freemarker模板里
我们将自动使用freemarker渲染数据
并读取渲染数据过后的xml文件
使用poi将xml数据导出到新的excel文件
简单实示例:
示例程序:https://github.com/yongjiu8/freemarker-excel-test/tree/master
FreemarkerInput freemarkerInput = new FreemarkerInput();
//设置freemarker模板路径
freemarkerInput.setTemplateFilePath("/templates");
//模板名字
freemarkerInput.setTemplateName("template.ftl");
//缓存xml路径
freemarkerInput.setXmlTempFile("/templates/tmp");
//缓存xml名字
freemarkerInput.setFileName("tmpXml");
//设置freemarker模板数据
freemarkerInput.setDataMap(getData());
//导出Excel到输出流(Excel2003版,xls格式)
FreemarkerUtils.exportImageExcel("templates/success.xls", freemarkerInput);
//导出Excel到输出流(Excel2007版及以上,xlsx格式)速度快
FreemarkerUtils.exportImageExcelNew("templates/success.xlsx", freemarkerInput);
//导出Excel到浏览器(Excel2003版,xls格式)
FreemarkerUtils.exportImageExcel(HttpServletResponse , freemarkerInput);
//导出Excel到浏览器(Excel2007版及以上,xlsx格式)速度快
FreemarkerUtils.exportImageExcelNew(HttpServletResponse , freemarkerInput);