Chimm.Excel —— 設定模板,填充資料,就完事兒了~
_____ _ _ _____ _
/ __ \ | (_) | ___| | |
| / \/ |__ _ _ __ ___ _ __ ___ | |____ _____ ___| |
| | | '_ \| | '_ ` _ \| '_ ` _ \ | __\ \/ / __/ _ \ |
| \__/\ | | | | | | | | | | | | | |_| |___> < (_| __/ |
\____/_| |_|_|_| |_| |_|_| |_| |_(_)____/_/\_\___\___|_|
目錄- Chimm.Excel —— 設定模板,填充資料,就完事兒了~
- 1. 專案介紹
- 1.1 專案簡介
- 1.2 專案地址
- 2. 功能展示
- 2.1 demo檔案演示
- 2.2 詳細操作說明
- 3. 起步
- 4. 參與貢獻
- 5. 聯系作者
- 6. 開源協議
- 1. 專案介紹
1. 專案介紹
1.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] 更改單元格邊框樣式(加粗、虛線等)
1.2 專案地址
- GitHub:https://github.com/chimmhuang/chimm.excel
- 碼云:https://gitee.com/chimmhuang/chimm.excel
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 = https://www.cnblogs.com/chimmhuang/archive/2020/10/20/new SchoolReportData();
// ... 填充資料 ...
tableData.setTitle("xx中學成績單");
// ... 省略了添加資料的代碼 ...
// 將封裝好的表格物件,填充到 excel 表格中
ExcelHelper.fillInData(table, tableData);
// 將表格物件轉換為二進制,resultBytes 即是最終想要的結果
byte[] resultBytes = ExcelHelper.convert2Byte(table);
}
4. 參與貢獻
非常歡迎你的加入!提一個 Issue 或者提交一個 Pull Request,
5. 聯系作者
QQ & 微信:905369866
email:[email protected]
6. 開源協議
Apache 2.0 ? Chimm Huang
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/183080.html
標籤:其他
