在excel中如果能夠?qū)⒕哂卸嗉壝骷?xì)的數(shù)據(jù)進(jìn)行分組顯示,可以清晰地展示數(shù)據(jù)表格的整體結(jié)構(gòu),使整個文檔具有一定層次感。根據(jù)需要設(shè)置顯示或者隱藏分類數(shù)據(jù)下的詳細(xì)信息,在便于數(shù)據(jù)查看、管理的同時也使文檔更具美觀性。那么,在c#中如何來創(chuàng)建excel數(shù)據(jù)的多級分組顯示呢?下面將進(jìn)行詳細(xì)闡述。方法中使用了免費(fèi)版組件free spire.xls for .net,下載安裝該組件,創(chuàng)建一個控制臺應(yīng)用程序后,添加引用該組件安裝包下的dll文件到項(xiàng)目中,同時添加相應(yīng)的命名空間即可。下面是具體的代碼操作步驟,供參考。
步驟一:創(chuàng)建一個wordbook類對象,獲取第一個工作表
1
2
|
workbook workbook = new workbook(); worksheet sheet = workbook.worksheets[0]; |
步驟二:寫入數(shù)據(jù)到單元格
1
2
3
4
5
6
7
8
9
10
11
12
|
sheet.range[ "a1" ].value = "公司部門" ; sheet.range[ "a3" ].value = "綜合部" ; sheet.range[ "a4" ].value = "行政" ; sheet.range[ "a5" ].value = "人事" ; sheet.range[ "a6" ].value = "市場部" ; sheet.range[ "a7" ].value = "業(yè)務(wù)部" ; sheet.range[ "a8" ].value = "客服部" ; sheet.range[ "a9" ].value = "技術(shù)部" ; sheet.range[ "a10" ].value = "技術(shù)開發(fā)" ; sheet.range[ "a11" ].value = "技術(shù)支持" ; sheet.range[ "a12" ].value = "售前支持" ; sheet.range[ "a13" ].value = "售后支持" ; |
步驟三:設(shè)置issummaryrowbelow屬性為false, 即總結(jié)行顯示在明細(xì)行上方
1
|
sheet.pagesetup.issummaryrowbelow = false ; |
步驟四:選擇行進(jìn)行分組,參數(shù)false表示展開當(dāng)前分組,如需隱藏,設(shè)置成true
1
2
3
4
5
6
7
8
|
//選擇行進(jìn)行一級分組 sheet.groupbyrows(2, 13, false ); //選擇行進(jìn)行二級分組 sheet.groupbyrows(4,5 , false ); sheet.groupbyrows(7, 8, false ); sheet.groupbyrows(10,13 , false ); //選擇行進(jìn)行三級分組 sheet.groupbyrows(12,13, true ); |
步驟五:定義一個cellstyle對象,設(shè)置并運(yùn)用格式到單元格內(nèi)字體
1
2
3
4
5
6
7
|
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; |
步驟六:設(shè)置區(qū)域邊框樣式
1
2
3
4
5
6
|
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); |
步驟七:保存文檔
1
|
workbook.savetofile( "output.xlsx" , excelversion.version2013); |
運(yùn)行程序生成文檔(可在該項(xiàng)目文件夾下bin>debug文件夾下查看生成的文檔)
效果展示:
全部代碼:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
using system; using system.drawing; using spire.xls; namespace multilevelgroup_xls { class program { static void main( string [] args) { //創(chuàng)建一個wordbook類對象,獲取第一個工作表 workbook workbook = new workbook(); worksheet sheet = workbook.worksheets[0]; //寫入數(shù)據(jù)到單元格 sheet.range[ "a1" ].value = "公司部門" ; sheet.range[ "a3" ].value = "綜合部" ; sheet.range[ "a4" ].value = "行政" ; sheet.range[ "a5" ].value = "人事" ; sheet.range[ "a6" ].value = "市場部" ; sheet.range[ "a7" ].value = "業(yè)務(wù)部" ; sheet.range[ "a8" ].value = "客服部" ; sheet.range[ "a9" ].value = "技術(shù)部" ; sheet.range[ "a10" ].value = "技術(shù)開發(fā)" ; sheet.range[ "a11" ].value = "技術(shù)支持" ; sheet.range[ "a12" ].value = "售前支持" ; sheet.range[ "a13" ].value = "售后支持" ; //設(shè)置issummaryrowbelow為false, 即總結(jié)行顯示在明細(xì)行上方 sheet.pagesetup.issummaryrowbelow = false ; //選擇行進(jìn)行一級分組 //參數(shù)false表示展開當(dāng)前分組,若要隱藏設(shè)置成true sheet.groupbyrows(2, 13, false ); //選擇行進(jìn)行二級分組 sheet.groupbyrows(4,5 , false ); sheet.groupbyrows(7, 8, false ); sheet.groupbyrows(10,13 , false ); //選擇行進(jìn)行三級分組 sheet.groupbyrows(12,13, true ); //定義一個cellstyle對象,設(shè)置并運(yùn)用單元格內(nèi)字體格式 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; //設(shè)置區(qū)域邊框樣式 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); system.diagnostics.process.start( "output.xlsx" ); } } } |
以上是關(guān)于設(shè)置excel多級分組的全部操作步驟。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。
原文鏈接:http://www.cnblogs.com/Yesi/archive/2017/12/21/8080166.html