首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET 實作 Excel 風格資料樞紐分析表

     編輯:關於ASP.NET

資料樞紐表提供資料的三維視圖,雖然 Excel 內建支援,但在 Web 應用中整合並不容易。本文提供一套完整解決方案,將 DataTable 的二維資料轉換為三維樞紐報表,並揭開演算法奧秘。

目標與資料來源

將銷售資料從二維表格轉為「業務員 × 產品」的交叉統計視圖。典型 SQL 查詢如下:

SELECT 
    SalesPeople.FullName AS [Sales Person],
    Products.FullName AS [Product],
    SUM(Sales.SalesAmount) AS [Sale Amount],
    SUM(Sales.Qty) AS [Quantity]
FROM Sales
JOIN SalesPeople WITH (NOLOCK) ON SalesPeople.SalesPersonID = Sales.SalesPersonID
JOIN Products WITH (NOLOCK) ON Products.ProductCode = Sales.ProductCode
GROUP BY SalesPeople.FullName, Products.FullName

原始資料範例

Sales Person  Product     Quantity  Sale Amount
John          Pens        200       350
John          Pencils     400       500
John          Notebooks   100       300
...           ...         ...       ...
Sarah         Back Packs  50        2020

核心轉換邏輯

  1. 行維度:業務員
  2. 列維度:產品
  3. 資料值:銷售金額、數量(可多指標)
  4. 彙總函數:Sum、Avg、Count 等

演算法步驟:

// 概念性流程
1. 掃描 DataTable,收集唯一行值與列值
2. 建立二維陣列 [行數, 列數] 儲存彙總值
3. 逐行累加至對應儲存格
4. 輸出為 HTML Table 或繫結至 GridView

進階功能擴充

  • 多層行/列標頭(如:區域 → 業務員)
  • 動態欄位選擇與拖曳配置(參考 Excel UI)
  • 鑽取下鑽:點擊彙總值展開明細
  • 匯出 Excel 保留樞紐結構

實作建議

  • 資料量大時,建議在資料庫層用 PIVOT (SQL Server) 或 CROSSTAB (Access/PostgreSQL) 直接轉換,減少前端運算。
  • 前端呈現可整合 jQuery DataTables、AG Grid 等支援樞紐的元件。
  • 快取彙總結果,避免重複計算。

本文附贈完整原始碼下載,包含核心轉換類別與示範專案,可直接整合至專案中。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved