English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
在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文件夹下查看生成的文档)
效果展示:
全部代码:
using System; using System.Drawing; using Spire.Xls; namespace MultilevelGroup_XLS { class Program { static void Main(string[] args) { //创建一个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); System.Diagnostics.Process.Start("output.xlsx"); } } }
هذه هي جميع الخطوات لضبط التجميع المتعدد في Excel.
هذا هو محتوى المقال الكامل، آمل أن يكون هذا المقال مفيدًا جدًا لكم في تعلم، وأيضًا آمل أن تدعموا وتعطوا صوتًا لتعليم الأنظمة.
البيان: محتويات هذا المقال تم جمعها من الإنترنت، ويتمتع صاحب الحقوق الأصلية بهذه المحتويات، تم إعدادها من قبل مستخدمي الإنترنت بشكل تلقائي وتم تحميلها، لا يمتلك هذا الموقع حقوق الملكية، لم يتم تعديل المحتويات بشكل يدوي ولا يتحمل هذا الموقع أي مسؤولية قانونية ذات صلة. إذا اكتشفتم محتويات مشبوهة في حقوق النسخ، مرحبًا بكم في إرسال بريد إلكتروني إلى: notice#oldtoolbag.com (عند إرسال البريد الإلكتروني، يرجى استبدال '#' بـ '@') لتقديم الشكوى، وتقديم الدليل ذات الصلة، إذا تم التحقق من ذلك، سيتم حذف محتويات الإشارة إلى حقوق النسخ المزعومة على الفور.