C#創(chuàng)建Excel多級(jí)分組的方法
在Excel中如果能夠?qū)⒕哂卸嗉?jí)明細(xì)的數(shù)據(jù)進(jìn)行分組顯示,可以清晰地展示數(shù)據(jù)表格的整體結(jié)構(gòu),使整個(gè)文檔具有一定層次感。根據(jù)需要設(shè)置顯示或者隱藏分類(lèi)數(shù)據(jù)下的詳細(xì)信息,在便于數(shù)據(jù)查看、管理的同時(shí)也使文檔更具美觀性。那么,在C#中如何來(lái)創(chuàng)建Excel數(shù)據(jù)的多級(jí)分組顯示呢?下面將進(jìn)行詳細(xì)闡述。方法中使用了免費(fèi)版組件Free Spire.XLS for .NET,下載安裝該組件,創(chuàng)建一個(gè)控制臺(tái)應(yīng)用程序后,添加引用該組件安裝包下的dll文件到項(xiàng)目中,同時(shí)添加相應(yīng)的命名空間即可。下面是具體的代碼操作步驟,供參考。
步驟一:創(chuàng)建一個(gè)Wordbook類(lèi)對(duì)象,獲取第一個(gè)工作表
Workbook workbook = new Workbook(); Worksheet sheet = workbook.Worksheets[0];
步驟二:寫(xiě)入數(shù)據(jù)到單元格
sheet.Range["A1"].Value = "公司部門(mén)"; sheet.Range["A3"].Value = "綜合部"; sheet.Range["A4"].Value = "行政"; sheet.Range["A5"].Value = "人事"; sheet.Range["A6"].Value = "市場(chǎng)部"; sheet.Range["A7"].Value = "業(yè)務(wù)部"; sheet.Range["A8"].Value = "客服部"; sheet.Range["A9"].Value = "技術(shù)部"; sheet.Range["A10"].Value = "技術(shù)開(kāi)發(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表示展開(kāi)當(dāng)前分組,如需隱藏,設(shè)置成true
//選擇行進(jìn)行一級(jí)分組 sheet.GroupByRows(2, 13, false); //選擇行進(jìn)行二級(jí)分組 sheet.GroupByRows(4,5 , false); sheet.GroupByRows(7, 8, false); sheet.GroupByRows(10,13 , false); //選擇行進(jìn)行三級(jí)分組 sheet.GroupByRows(12,13, true);
步驟五:定義一個(gè)CellStyle對(duì)象,設(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);
運(yùn)行程序生成文檔(可在該項(xiàng)目文件夾下bin>Debug文件夾下查看生成的文檔)
效果展示:
全部代碼:
using System; using System.Drawing; using Spire.Xls; namespace MultilevelGroup_XLS { class Program { static void Main(string[] args) { //創(chuàng)建一個(gè)Wordbook類(lèi)對(duì)象,獲取第一個(gè)工作表 Workbook workbook = new Workbook(); Worksheet sheet = workbook.Worksheets[0]; //寫(xiě)入數(shù)據(jù)到單元格 sheet.Range["A1"].Value = "公司部門(mén)"; sheet.Range["A3"].Value = "綜合部"; sheet.Range["A4"].Value = "行政"; sheet.Range["A5"].Value = "人事"; sheet.Range["A6"].Value = "市場(chǎng)部"; sheet.Range["A7"].Value = "業(yè)務(wù)部"; sheet.Range["A8"].Value = "客服部"; sheet.Range["A9"].Value = "技術(shù)部"; sheet.Range["A10"].Value = "技術(shù)開(kāi)發(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)行一級(jí)分組 //參數(shù)false表示展開(kāi)當(dāng)前分組,若要隱藏設(shè)置成true sheet.GroupByRows(2, 13, false); //選擇行進(jìn)行二級(jí)分組 sheet.GroupByRows(4,5 , false); sheet.GroupByRows(7, 8, false); sheet.GroupByRows(10,13 , false); //選擇行進(jìn)行三級(jí)分組 sheet.GroupByRows(12,13, true); //定義一個(gè)CellStyle對(duì)象,設(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多級(jí)分組的全部操作步驟。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C#使用正則表達(dá)式隱藏手機(jī)號(hào)中間四位為*
這篇文章主要介紹了C#使用正則表達(dá)式隱藏手機(jī)號(hào)中間四位為*的相關(guān)資料,需要的朋友可以參考下2017-06-06C#將圖片存放到SQL SERVER數(shù)據(jù)庫(kù)中的方法
這篇文章主要介紹了C#將圖片存放到SQL SERVER數(shù)據(jù)庫(kù)中的方法,以實(shí)例形式較為詳細(xì)的分析了C#保存圖片到SQL Server數(shù)據(jù)庫(kù)的具體步驟與相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-09-09Unity之跑馬燈抽獎(jiǎng)效果單抽與連抽(附demo)
這篇文章主要介紹了Unity之跑馬燈抽獎(jiǎng)效果單抽與連抽,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05C#對(duì)桌面應(yīng)用程序自定義鼠標(biāo)光標(biāo)
這篇文章介紹了C#對(duì)桌面應(yīng)用程序自定義鼠標(biāo)光標(biāo)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06C#獲取應(yīng)用程序路徑或Web頁(yè)面目錄路徑
這篇文章介紹了C#獲取應(yīng)用程序路徑或Web頁(yè)面目錄路徑的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05