C# 如何創建Excel多級分組


在Excel中如果能夠將具有多級明細的數據進行分組顯示,可以清晰地展示數據表格的整體結構,使整個文檔具有一定層次感。根據需要設置顯示或者隱藏分類數據下的詳細信息,在便於數據查看、管理的同時也使文檔更具美觀性。那么,在C#中如何來創建Excel數據的多級分組顯示呢?下面將進行詳細闡述。方法中使用了免費版組件Free Spire.XLS for .NET,下載安裝該組件,創建一個控制台應用程序后,添加引用該組件安裝包下的dll文件到項目中,同時添加相應的命名空間即可。下面是具體的代碼操作步驟,供參考。

步驟一:創建一個Wordbook類對象,獲取第一個工作表

Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];

步驟二:寫入數據到單元格

sheet.Range["A1"].Value = "公司部門";
sheet.Range["A3"].Value = "綜合部";
sheet.Range["A4"].Value = "行政";
sheet.Range["A5"].Value = "人事";
sheet.Range["A6"].Value = "市場部";
sheet.Range["A7"].Value = "業務部";
sheet.Range["A8"].Value = "客服部";
sheet.Range["A9"].Value = "技術部";
sheet.Range["A10"].Value = "技術開發";
sheet.Range["A11"].Value = "技術支持";
sheet.Range["A12"].Value = "售前支持";
sheet.Range["A13"].Value = "售后支持";

步驟三:設置IsSummaryRowBelow屬性為false, 即總結行顯示在明細行上方

sheet.PageSetup.IsSummaryRowBelow = false;

步驟四:選擇行進行分組,參數false表示展開當前分組,如需隱藏,設置成true

//選擇行進行一級分組
sheet.GroupByRows(2, 13, false);
//選擇行進行二級分組
sheet.GroupByRows(4,5 , false);
sheet.GroupByRows(7, 8, false);
sheet.GroupByRows(10,13 , false);
//選擇行進行三級分組
sheet.GroupByRows(12,13, true);

步驟五:定義一個CellStyle對象,設置並運用格式到單元格內字體

CellStyle style = workbook.Styles.Add("style");
style.Font.IsBold = true;
style.Color = Color.LawnGreen;
sheet.Range["A1"].CellStyleName = style.Name;
sheet.Range["A3"].CellStyleName = style.Name;
sheet.Range["A6"].CellStyleName = style.Name;
sheet.Range["A9"].CellStyleName = style.Name;

步驟六:設置區域邊框樣式

sheet.Range["A4:A5"].BorderAround(LineStyleType.Thin);
sheet.Range["A4:A5"].BorderInside(LineStyleType.Thin);
sheet.Range["A7:A8"].BorderAround(LineStyleType.Thin);
sheet.Range["A7:A8"].BorderInside(LineStyleType.Thin);
sheet.Range["A10:A13"].BorderAround(LineStyleType.Thin);
sheet.Range["A10:A13"].BorderInside(LineStyleType.Thin);

步驟七:保存文檔

workbook.SaveToFile("output.xlsx", ExcelVersion.Version2013);

運行程序生成文檔(可在該項目文件夾下bin>Debug文件夾下查看生成的文檔)

效果展示:

 全部代碼:

 1 using System;
 2 using System.Drawing;
 3 using Spire.Xls;
 4 
 5 
 6 namespace MultilevelGroup_XLS
 7 {
 8     class Program
 9     {
10         static void Main(string[] args)
11         {
12             //創建一個Wordbook類對象,獲取第一個工作表
13             Workbook workbook = new Workbook();
14             Worksheet sheet = workbook.Worksheets[0];
15 
16             //寫入數據到單元格
17             sheet.Range["A1"].Value = "公司部門";
18             sheet.Range["A3"].Value = "綜合部";
19             sheet.Range["A4"].Value = "行政";
20             sheet.Range["A5"].Value = "人事";
21             sheet.Range["A6"].Value = "市場部";
22             sheet.Range["A7"].Value = "業務部";
23             sheet.Range["A8"].Value = "客服部";
24             sheet.Range["A9"].Value = "技術部";
25             sheet.Range["A10"].Value = "技術開發";
26             sheet.Range["A11"].Value = "技術支持";
27             sheet.Range["A12"].Value = "售前支持";
28             sheet.Range["A13"].Value = "售后支持";
29 
30             //設置IsSummaryRowBelow為false, 即總結行顯示在明細行上方
31             sheet.PageSetup.IsSummaryRowBelow = false;
32 
33             //選擇行進行一級分組
34             //參數false表示展開當前分組,若要隱藏設置成true
35             sheet.GroupByRows(2, 13, false);
36 
37             //選擇行進行二級分組
38             sheet.GroupByRows(4,5 , false);
39             sheet.GroupByRows(7, 8, false);
40             sheet.GroupByRows(10,13 , false);
41 
42             //選擇行進行三級分組
43             sheet.GroupByRows(12,13, true);
44 
45             //定義一個CellStyle對象,設置並運用單元格內字體格式
46             CellStyle style = workbook.Styles.Add("style");
47             style.Font.IsBold = true;
48             style.Color = Color.LawnGreen;
49             sheet.Range["A1"].CellStyleName = style.Name;
50             sheet.Range["A3"].CellStyleName = style.Name;
51             sheet.Range["A6"].CellStyleName = style.Name;
52             sheet.Range["A9"].CellStyleName = style.Name;
53             
54             //設置區域邊框樣式
55             sheet.Range["A4:A5"].BorderAround(LineStyleType.Thin);
56             sheet.Range["A4:A5"].BorderInside(LineStyleType.Thin);
57             sheet.Range["A7:A8"].BorderAround(LineStyleType.Thin);
58             sheet.Range["A7:A8"].BorderInside(LineStyleType.Thin);
59             sheet.Range["A10:A13"].BorderAround(LineStyleType.Thin);
60             sheet.Range["A10:A13"].BorderInside(LineStyleType.Thin);
61 
62 
63             //保存文檔
64             workbook.SaveToFile("output.xlsx", ExcelVersion.Version2013);
65             System.Diagnostics.Process.Start("output.xlsx");
66         }
67     }
68 }
View Code

 

以上是關於設置Excel多級分組的全部操作步驟,如果對您有所幫助,歡迎轉載(轉載請注明出處)。

感謝閱讀!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM