Chimm.Excel —— 使用Java 操作 excel 模板文件生成 excel 文档
Chimm.Excel —— 设置模板,填充数据,就完事儿了~
_____ _ _ _____ _
/ __ \ | (_) | ___| | |
| / \/ |__ _ _ __ ___ _ __ ___ | |____ _____ ___| |
| | | '_ \| | '_ ` _ \| '_ ` _ \ | __\ \/ / __/ _ \ |
| \__/\ | | | | | | | | | | | | | |_| |___> < (_| __/ |
\____/_| |_|_|_| |_| |_|_| |_| |_(_)____/_/\_\___\___|_|
1. 项目介绍
Chimm.Excel是什么?
该程序是一个基于 Apache POI 和 Antlr4 打造的 excel 生成的 Java 工具,主要作用在于减少了开发人员通过程序生成表格的工作量,提高了工作效率。Chimm.Excel的优势是什么?- 和网上部分的开源软件的区别是,该程序是基于 excel 模板进行工作的,并非基于注解。也就是说,我们首先需要在 office 中编写好我们的 excel 模板才行,优势在于,我们可以直接在 office 中就直接定制化表格的样式,也就是说,样式直接由 excel 软件进行控制了,这大大降低了我们在程序中操作样式的时间。
- 由于该程序是基于
Antlr4进行开发的,所以在变量定义上面,非常的灵活,我们可以定义集合变量,甚至我们还可以在公式中定义变量。一个表格对应一个数据对象,开发人员只需查询数据、组装数据即可。 - 可以自定义模板样式,该程序也提供了部分操作表格样式的功能,如:复制一行、合并单元格、更改边框样式等等。
- 主要的重点功能暂时介绍这么多,这些功能基本能解决绝大部分问题了。如果各位遇到了其他需要解决的应用场景,欢迎评论提出
issue,我们一起探讨。
excel 模板如何生成?
模板生成非常的简单,我们定义变量的时候,只需要使用$+大小括号包围的形式即可,如:${school.name}。Chimm.Excel功能简介(v1.0)- [x] 导出excel二进制文件
- [x] 根据模板中的变量,将值写入
- [x] 支持公式
- [x] 支持带变量的公式,如:
SUM(A1,A2,${demo.value})
- [x] 支持带变量的公式,如:
- [x] 操作表格添加/减少行
- [x] ️添加行会自动更新公式
- [x] 合并单元格
- [x] 更改单元格边框样式(加粗、虚线等)
2. 功能展示
2.1 demo文件演示
模板文件:

处理后的文件:

我提供了一个 demo 测试类。
模板具体位置: src/test/resources/demo.xlsx
测试类的具体位置:src/test/java/../demo/Demo.java
2.2 详细操作说明
- wiki(GitHub):点击前往
- wiki(码云):点击前往
- 我在
src/test/java/../demo/Demo.java中,写了一个测试方法,该方法几乎包含了最常用的方法,可以提供参照。
3. 起步
- 配置模板
我在该项目中提功能 demo 使用的模板,基本满足绝大部分场景:src/test/resources/demo.xlsx - 导入坐标
<dependency>
<groupId>com.github.chimmhuang</groupId>
<artifactId>chimm.excel</artifactId>
<version>1.0</version>
</dependency>
- 入门程序
@Test
public void testFillInTable() throws Exception {
// 获取文件的二进制
File file = new File("src/test/resources/demo.xlsx");
byte[] bytes = FileUtils.readFileToByteArray(file);
// 通过 ExcelHelper 获取 excel 表格对象
ExcelWorkbook excelWorkbook = ExcelHelper.createWorkbook(bytes);
// 获取指定的 sheet 页
SheetTable table = excelWorkbook.getSheet(0);
// 封装表格数据对象
SchoolReportData tableData = new SchoolReportData();
// ... 填充数据 ...
tableData.setTitle("xx中学成绩单");
// ... 省略了添加数据的代码 ...
// 将封装好的表格对象,填充到 excel 表格中
ExcelHelper.fillInData(table, tableData);
// 将表格对象转换为二进制,resultBytes 即是最终想要的结果
byte[] resultBytes = ExcelHelper.convert2Byte(table);
}
4. 参与贡献
非常欢迎你的加入!提一个 Issue 或者提交一个 Pull Request。
5. 联系作者
QQ & 微信:905369866
email:chimmhuang@163.com
6. 开源协议
Apache 2.0 Chimm Huang
Chimm.Excel —— 使用Java 操作 excel 模板文件生成 excel 文档的更多相关文章
- [转]java 根据模板文件生成word文档
链接地址:https://blog.csdn.net/ai_0922/article/details/82773466
- Java 导出数据库表信息生成Word文档
一.前言 最近看见朋友写了一个导出数据库生成word文档的业务,感觉很有意思,研究了一下,这里也拿出来与大家分享一波~ 先来看看生成的word文档效果吧 下面我们也来一起简单的实现吧 二.Java 导 ...
- Java 读取txt文件生成Word文档
本文将以Java程序代码为例介绍如何读取txt文件中的内容,生成Word文档.在编辑代码前,可参考如下代码环境进行配置: IntelliJ IDEA Free Spire.Doc for Java T ...
- velocity模板技术生成word文档
本文介绍採用velocity技术在Java中生成word文档的方法. 1.新建一个word文档,编辑内容例如以下: 2.将上述word文档另存为htm格式的文件 3.新建一个Java Project项 ...
- WebAPI使用多个xml文件生成帮助文档
一.前言 上篇有提到在WebAPI项目内,通过在Nuget里安装(Microsoft.AspNet.WebApi.HelpPage)可以根据注释生成帮助文档,查看代码实现会发现是基于解析项目生成的xm ...
- WebAPI使用多个xml文件生成帮助文档(转)
http://www.cnblogs.com/idoudou/p/xmldocumentation-for-web-api-include-documentation-from-beyond-the- ...
- 使用freemarker模板引擎生成word文档的开发步骤
1.准备模板文档,如果word文档中有表格,只保留表头和第一行数据:2.定义变量,将word文档中的变量用${var_name}替换:3.生成xml文件,将替换变量符后的word文档另存为xml文件: ...
- 【转】WebAPI使用多个xml文件生成帮助文档
来自:http://www.it165.net/pro/html/201505/42504.html 一.前言 上篇有提到在WebAPI项目内,通过在Nuget里安装(Microsoft.AspNet ...
- C# 读取txt文件生成Word文档
本文将以C#程序代码为例介绍如何来读取txt文件中的内容,生成Word文档.在编辑代码前,可参考如下代码环境进行配置: Visual Studio 2017 .Net Framework 4.6.1 ...
随机推荐
- day51:django:dispatch&模板渲染&过滤器&标签&组件&静态文件配置
目录 1.dispatch 2.模板渲染 3.过滤器 4.标签 5.组件 6.静态文件配置 dispatch 回顾:CBV对应的URL传参 urls.py url(r'^book/(\d+)/(\d+ ...
- 高可用集群之keepalived+lvs实战2
keepalived简介 lvs在我之前的博客<高负载集群实战之lvs负载均衡-技术流ken>中已经进行了详细的介绍和应用,在这里就不再赘述.这篇博文将把lvs与keepalived相结合 ...
- T和Class以及Class的理解
转载自https://blog.csdn.net/witewater/article/details/53462385 首先看下Class类 ,普通的非泛型类Class. 注意:class是java的 ...
- Excel—使用if(countif())表达式来筛选两个表格中相同的数据
关注微信公众号:CodingTechWork,一起学习进步. 引言 在线上运维的过程中,遇到一个头疼的事情,有一些合作公司的数据直接从平台上down下来是一个excel,然后发到研发手里去数据库中 ...
- Python接口自动化测试01
1)环境准备: 接口测试的方式有很多,比如可以用工具(jmeter,postman)之类,也可以自己写代码进行接口测试,工具的使用相对来说都比较简单,重点是要搞清楚项目接口的协议是什么,然后有针对性的 ...
- .NET Core加解密实战系列之——使用BouncyCastle制作p12(.pfx)数字证书
简介 加解密现状,编写此系列文章的背景: 需要考虑系统环境兼容性问题(Linux.Windows) 语言互通问题(如C#.Java等)(加解密本质上没有语言之分,所以原则上不存在互通性问题) 网上资料 ...
- spring:Beanfactory和ApplicationContext、BeanFactory 和 FactoryBean
1.Beanfactory和ApplicationContext有什么区别 ApplicationContext (1)在配置文件加载后创建bean 利用debug方式,在Student类的无参构造方 ...
- IIS目录浏览模式打开文件还是无法下载
写在前面的话 IIS已经设置目录浏览启用,且可以正常访问到文件,说明这些设置没问题,但是点击文件进行下载时,却提示无法下载,文件不存在等等,有的又可以,一顿操作后发现,原来是文件类型没有包含在MIME ...
- Python 3 入门,看这篇就够了(超全整理)
史上最全Python资料汇总(长期更新).隔壁小孩都馋哭了 --- 点击领取 今天和大家分享的内容是Python入门干货,文章很长. 简介 Python 是一种高层次的结合了解释性.编译性.互动性和面 ...
- c#RSA的SHA1加密与AES加密、解密
前言:公司项目对接了一个对数据保密性要求较高的java公司.api接口逻辑是这样的:他们提供 SHA1私钥 与 AES的秘钥.我们需要将 传递查询参数 通过SHA1 私钥加密再转换成 十六进制 字符串 ...