實際需求:業務上的一個需求,資料庫表A中的B欄位存放的是該條資料的一些標籤,標籤存在兩級【即一級標籤和二級標籤】, 現在要是實現將這些標籤統計到報表中,一級標籤作為表頭,二級標籤作為填充值。
由於之前的報表每增加一個列都需要去資料庫表中增加這個欄位名稱,然後程式碼中寫統計邏輯,這樣才能實現, 這樣做的好處是隻需要後端就可以完成報表的一個欄位的增加,不需要等待前端去增加這了列名了, 後來的低程式碼就是這樣的邏輯,可以簡單的編寫sql,去實現統計邏輯。實現快速開發,節省開發時間。
迴歸正題,由於每個資料的標籤是不確定的,那就導致了每個每個資料要統計的列是不一樣的,這裡的做法是將全部的標籤都進行增加統計【使用者不需要的話還有個功能取消掉某列的統計就可以了】,當使用者新增一個標籤的時候,只要去檢視報表,檢測到這個標籤的名稱不在列統計當中,就會自動的去新增一條列統計欄位,每條資料迴圈的時候要將給其賦值,有對應的二級標籤那就展示二級標籤名稱,沒有的話那也要新增一個列,但是資料填寫空字串。【這一步主要是防止在下載報表的時候報錯,以防列數對應不上而報錯】。
有兩個核心的點,第一個:統計的列名為什麼還要在資料庫表中再存一份? 其實也可以將要統計的列名放入程式碼中寫死,同樣可以實現報表資料的展示,但是所有的客戶都會展示這麼多的列統計,沒有辦法支援各個客戶對統計列的篩選【這個就是原因】。
第二個:程式碼中的列資料如何和資料庫表中的列名對應上的? 資料庫表中存入統計列的列中文名和列英文名, 在程式碼中一個欄位的定義肯定是英文的,這樣就可以知道如何賦值了,【列中文名是給客戶展示的】,其中 。。。 有時間再繼續
C# .netcore NPOI庫 實現報表的列自適應刪減
相關文章
- C# 實現NPOI的Excel匯出C#Excel
- NetCore框架WTM的分表分庫實現NetCore框架
- (幾乎)完美實現 el-table 列寬自適應
- textarea實現高度自適應的理解
- c# 窗體自適應C#
- gridview自動適應列寬View
- C#(.NetCore)接入AD域使用者的實現C#NetCore
- 怎樣實現動態列報表,也就是列數不固定的報表?
- 自適應且不可刪除的水印蒙層
- QTableWidget行高列寬自適應QT
- CSS實現圖片寬度自適應CSS
- padding-bottom實現圖片自適應padding
- 關於c#使用Npoi庫的一些隨筆C#
- css實現圖片自適應容器的幾種方式CSS
- css實現兩欄固定中間自適應CSS
- 固定寬度下,CSS 實現自適應文字CSS
- 兩列自適應佈局方案整理
- 三列寬度自適應佈局
- Python 實現自動化 Excel 報表PythonExcel
- 如何實現兩欄佈局,右側自適應?三欄佈局中間自適應呢?
- web 報表工具如何自適應Web
- css佈局,左右固定中間自適應實現CSS
- CSS實現寬高等比例自適應矩形CSS
- 直播系統開發,實現自適應手機狀態列高度的頂部導航欄
- MyBatis實現MySQL表欄位及結構的自動增刪MyBatisMySql
- 三列布局中間寬度自適應
- 兩列居中寬度自適應佈局
- 兩列布局,自適應寬度練習
- 前端:WebP自適應實踐前端Web
- 一文講透自適應熔斷的原理和實現
- Gitlab Runner實現NetCore自動化持續整合GitlabNetCore
- 實現報表資料分庫儲存
- CSS 圖片固定長寬比實現高度自適應CSS
- lib-flexible 實現移動端自適應佈局Flex
- 自適應負載均衡演算法原理與實現負載演算法
- 三列自適應佈局(聖盃佈局)
- 一列居中寬度自適應佈局
- vxe-table 列寬拖拽模式設定,自適應列寬,固定列寬模式