還在擔心報表不好做?不用怕,試試這個方法(四)

系列文章:

《還在擔心報表不好做?不用怕,試試這個方法》(一)

《還在擔心報表不好做?不用怕,試試這個方法》(二)

《還在擔心報表不好做?不用怕,試試這個方法》(三)

概要

在上一篇文章《還在擔心報表不好做?不用怕,試試這個方法》(三)中,小編爲大家分享了數據間的主從關係及單元格佈局。主要講解數據之間的主從關係,以及如何在單元格中表示這種關係。

在本期教程中,小編將爲大家分享如何在模板中解決各種分組與擴展的情況。

模板中的擴展

模板引擎如何擴展單元格

在上一篇文章《還在擔心報表不好做?不用怕,試試這個方法》(三)中,小編通過主從相關的屬性(Context 以及 Range)爲模板配置主從關係。以及提到了擴展相關的規則:

  1. 先擴展主單元格,後擴展從單元格。
  2. 主單元格擴展的時候,需要複製從單元格,並調整主從關係。
  3. 從單元格獲取數據的時候要受主單元格的約束,擴展的時候要考慮調整主單元格的位置和大小。

這次我們舉一個例子,讓大家更好地理解如何進行數據填充的,假定現有如下的模板:

第一步:先擴展 A1 單元格,模板引擎從數據源 ds 中,獲取銷售公司的數據,得到兩條數據。根據默認的擴展方向(向下),將數據跳至 A1 和 A2 中。同時,C1 的單元格因爲主從關係,而被複制,實現結果如下:

第二步:擴展單元格 C1,模板引擎從數據源中獲取銷售公司爲 【西安公司】的員工數據。得到三條數據,因此擴展C1,並填入數據。A1 也因爲是 C1 的主單元格,從而也被複制擴展。結果如下:

第三步:繼續擴展 C4 單元格。與第二步邏輯一樣,結果如下:

擴展的方向

Excel作爲結構化表格,本質是一個二維矩陣。因此擴展的方向,自然也只有水平,橫向擴展和垂直,縱向擴展。

在剛纔的例子中,A列和C列的數據擴展均是向下的。但是在有些報表中,數據是水平甚至是交叉擴展的。

因此,提供了屬性 E,可以通過設置 E = H 來指定,橫向擴展。

在大多數情況下,可以根據單元格主從關係來,選擇擴展方向:

  • 當主從單元格爲左右相鄰,則向下擴展。
  • 當主從單元格爲上下相鄰,則向右擴展。

但是當主從單元格不相鄰時,則可以使用 E 來指定方向。使用( E= V)向下或者向右( E= H)兩個方向進行擴展,或者 E = N,不作擴展。

例子:交叉擴展

基於之前的數據表,如果希望生成的報表如下所示,是一個交叉表。那就需要合理利用擴展屬性來解決問題。

爲了能夠生成如上的報表結果,模板應該如下設計:

在B2中,我們通過橫向擴展商品類型,爲系統增加了更多的選擇。而A2則根據默認設置,實現了縱向擴展的功能。同時,在B2格子中,小編進行了顯示指定,根據A2和B1的數據進行自動擴展。通過靈活的報表生成功能,小編能夠獲得之前期望的結果,提供更美觀、直觀的數據展示。

模板中的分組

在上述例子中,細心的讀者可能已經注意到在數據源中,【銷售公司】數據與【員工】數據相關聯。然而,在導出後,公司名稱卻被自動分組去重。這正是模板填充時的一項智能功能,它能夠自動爲數據進行分組,從而提供更清晰、簡潔的數據展示效果。這個特性使得數據處理更加美觀和易於理解。

在模板屬性中,可以通過分組屬性 Group來處理各種分組的需求,Group 有四種屬性值:

  • G=Normal: 對於列中的相應記錄,不重複分組依據字段的值;而是每個數據組打印一次。
  • G=Merge (默認值): 行爲與常規參數相同,不同之處在於它會合並每個組集的按字段分組的單元格。
  • G=Repeat: 對相應的記錄重複分組依據字段的值。
  • G=List: 字段值針對相應的記錄獨立列出。

不同的屬性應用在模板上會有如下效果:

Normal

模板修改如下:

生成的報表如下:

Normal 情況下,A1單元格會擴展,但是數據僅出現一次。

Merge (默認情況)

模板如下:

生成的報表如下:

Merge 即默認情況,A1單元格會擴展,數據僅出現一次,但會合並單元格。

Repeat

模板如下:

生成的報表如下:

Repeat情況下,A1單元格會擴展,且數據會被重複填充。

List

模板如下:

生成的報表如下:

在List情況下,A1單元格會自動擴展,並且數據會被重複填充。然而,這種情況下並沒有進行分組,數據庫中的數據被完整地列出。我們可以將List理解爲不進行數據分組的方式,而其他三種情況則代表了經過分組後的不同展示方式。這種設計使得數據處理更加優雅和清晰。

總結

本章主要對模板語言中的擴展和分組進行講解,擴展和分組是模板填充中重要且基礎的概念。

本文所提到的所有內容均來自葡萄城公司的服務端表格控件產品GcExcel。如果您想了解更多信息,可以參考這篇產品文檔Demo 網站。下一期,小編將爲大家介紹數據展開等其他設置是如何在模板中使用的。下一期,小編將繼續爲大家講解模板填充中的其他屬性及設置。

擴展鏈接:

輕鬆構建低代碼工作流程:簡化繁瑣任務的利器

數據驅動創新:以Java編程方式定製數據透視表

Java批量操作Excel文件實踐

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章