一插菊花综合网,丝袜美腿亚洲熟女 国产,成人天堂资源www在线,骚妇内射图

好育寶

好育寶

翻譯表格模板chimm.excel:chimm

admin 13 134

Chimm.Excel —— 設(shè)置模板,填入數(shù)據(jù),就這樣~

碼云 | GitHub

1. 項(xiàng)目簡(jiǎn)介1.1 簡(jiǎn)介

什么是 Chimm.Excel?該程序是一個(gè)用Java編寫的Excel生成工具,基于模板操作,簡(jiǎn)單、快速、易用。

1.2 特點(diǎn)

數(shù)據(jù)組裝很不一樣

與網(wǎng)上的一些開源軟件不同的是,這個(gè)程序是由excel模板驅(qū)動(dòng)的,需要在模板中填寫變量名,而不是在程序中添加注釋。

為什么不使用基于注釋的方法?

網(wǎng)上一些基于注解的excel導(dǎo)出,基本只能導(dǎo)出簡(jiǎn)單的表格樣式。該程序使用excel模板,因此可以導(dǎo)出一些更復(fù)雜的表格樣式。

螞蟻4

Antlr(ANother Tool for Language Recognition)是一個(gè)強(qiáng)大的跨語言語法解析器,可用于讀取、處理、執(zhí)行或翻譯結(jié)構(gòu)化文本或二進(jìn)制文件。它被廣泛用于構(gòu)建語言、工具和框架。Antlr 可以在語法上生成一個(gè)可以構(gòu)建和遍歷解析樹的解析器。由于程序是基于Antlr4開發(fā)的,所以在變量的定義上非常靈活。我們可以定義集合變量,甚至可以在公式中定義變量。一張表對(duì)應(yīng)一個(gè)數(shù)據(jù)對(duì)象,開發(fā)者只需要查詢數(shù)據(jù),組裝數(shù)據(jù)即可。

如何生成excel模板?

模板生成非常簡(jiǎn)單。我們?cè)诙x變量的時(shí)候翻譯表格模板,只需要使用$+括號(hào)括起來的形式翻譯表格模板,比如:${school.name}。

翻譯表格模板chimm.excel:chimm

Chimm.Excel 函數(shù)介紹

根據(jù)模板中的變量,將值寫入支持公式操作表中添加/減少行合并單元格(支持批量合并)更改單元格邊框樣式(粗體、虛線等)支持設(shè)置超鏈接(v1.2.0)2. 功能展示

我提供了一個(gè)演示測(cè)試類。

模板具體位置:src/test/resources/demo.xlsx

測(cè)試類的具體位置:src/test/java/../demo/Demo.java

模板文件:

處理后的文件:

3. 項(xiàng)目結(jié)構(gòu)

.com.github.chimmhuang└── excel    ├── ExcelHelper.java    整個(gè)程序的主入口    ├── exception           自定義異常    ├── parser              Antlr4解析文件    └── tablemodel          表格相關(guān)的類

3.1 ExcelHelper-表處理對(duì)象

這個(gè)對(duì)象是整個(gè) Chimm.Excel 程序的主入口。提供創(chuàng)建excel工作簿、獲取工作表頁面、填寫模板數(shù)據(jù)、導(dǎo)出二進(jìn)制數(shù)據(jù)等功能。下面我將詳細(xì)介紹主要方法。

3.2 ExcelWorkbook-excel 對(duì)象

這個(gè)對(duì)象對(duì)應(yīng)整個(gè)excel文件,包括sheet頁的所有table對(duì)象?,F(xiàn)階段這個(gè)對(duì)象的實(shí)際使用場(chǎng)景并不是太多,所以提供的方法比較少

3.3 SheetTable-table 對(duì)象

該對(duì)象對(duì)應(yīng)于工作表頁面上的表格。提供了一些操作表格樣式的方法

3.4 Row-Row 對(duì)象

這個(gè)對(duì)象對(duì)應(yīng)的是excel的行,并提供了一些對(duì)該行進(jìn)行操作的方法

3.5 Cell-cell 對(duì)象

該對(duì)象對(duì)應(yīng)于excel的單元格。提供了一些cell操作的方法

4. 使用說明 4.1 配置模板

對(duì)于模板配置,使用美元符號(hào)和大括號(hào)來定義變量,例如:${demo.value}。

本項(xiàng)目中我用于功能demo的模板基本滿足大部分場(chǎng)景:src/test/resources/demo.xlsx

4.2 導(dǎo)入坐標(biāo)

    com.github.chimmhuang    chimm.excel    1.4.1

4.3 功能介紹4.3.1 導(dǎo)入模板,導(dǎo)出結(jié)果表

4.3.2 設(shè)置公式

public void testFillInTable() throws Exception {    /*        獲取文件的二進(jìn)制        通過 ExcelHelper 獲取 excel 表格對(duì)象        ...     */    // 獲取指定的 sheet 頁(該對(duì)象即是我們?cè)O(shè)置好的表格模板)    SheetTable table = excelWorkbook.getSheet(0);    // 給表格的 第13行 第A列 設(shè)置公式    Row row13 = table.getRow(13).getCell("A").setFormula("SUM(A1,A2,${demo.value})");}

4.3.3 加行/減行

public void testFillInTable() throws Exception {    /*        獲取文件的二進(jìn)制        通過 ExcelHelper 獲取 excel 表格對(duì)象        ...     */    // 獲取指定的 sheet 頁(該對(duì)象即是我們?cè)O(shè)置好的表格模板)    SheetTable table = excelWorkbook.getSheet(0);    // 獲取第13行    Row row13 = table.getRow(13);    // 將 rowNum 大于 13 的都刪除,進(jìn)行動(dòng)態(tài)表格添加    table.removeRowGE(13);    // 復(fù)制行    Row copy1 = row13.copy();    Row copy2 = row13.copy();    // 設(shè)置新的值    copy1.getCell("A").setValue("copy1");    copy2.getCell("A").setValue("copy2");    // 設(shè)置完畢后,添加進(jìn)表格    table.appendRow(copy1);    table.appendRow(copy2);}

4.3.4 個(gè)合并單元格

public void testFillInTable() throws Exception {    /*        獲取文件的二進(jìn)制        通過 ExcelHelper 獲取 excel 表格對(duì)象        ...     */    // 獲取指定的 sheet 頁(該對(duì)象即是我們?cè)O(shè)置好的表格模板)    SheetTable table = excelWorkbook.getSheet(0);    // 合并單元格,【此處僅展示功能,需要合并的 rowNum 建議動(dòng)態(tài)計(jì)算】    table.mergeCell(13, 15, "A", "A");    table.mergeCell(16, 19, "A", "A");}

4.3.5 粗體單元格邊框

public void testFillInTable() throws Exception {    /*        獲取文件的二進(jìn)制        通過 ExcelHelper 獲取 excel 表格對(duì)象        ...     */    // 獲取指定的 sheet 頁(該對(duì)象即是我們?cè)O(shè)置好的表格模板)    SheetTable table = excelWorkbook.getSheet(0);    // 設(shè)置指定行的單元格樣式,【此處僅展示功能:加粗,rowNum 建議動(dòng)態(tài)計(jì)算】    table.getRow(19).setBorderStyle(BorderPositionEnum.BOTTOM, BorderStyle.MEDIUM);}

4.3.6 設(shè)置超鏈接

public void testFillInTable() throws Exception {    /*        獲取文件的二進(jìn)制        通過 ExcelHelper 獲取 excel 表格對(duì)象        ...     */    // 獲取指定的 sheet 頁(該對(duì)象即是我們?cè)O(shè)置好的表格模板)    SheetTable table = excelWorkbook.getSheet(0);    // 設(shè)置超鏈接    table.getRow(2).getCell("A").setHyperlinkURL("");}

5. 參與投稿

非常歡迎您的加入!提出問題或提交拉取請(qǐng)求。

6. 聯(lián)系作者