首页
登录 | 注册

C# 创建Excel报表

创建Excel报表除了直接在Excel里面操作外,在C#中我们可以通过借助于组件运用代码的方式实现。下面将具体讲述如何通过组件Spire.XLS for .NET实现报表创建。
本文转载自http://www.cnblogs.com/Yesi/p/4186346.html 
PS:以数据库数据作为报表数据
步骤一创建一个空的excel 文档,获取它的第一个sheet
  1. Workbook workbook = new Workbook();
  2. Worksheet worksheet = workbook.Worksheets[0];
步骤二: 制作报表的标题
  1. static void MakeTitle(Worksheet worksheet)

  2.      {

  3. CellRange range=worksheet.Range["A1"];//获取A1单元格

  4. range.Text = "职工人事信息表";//添加标题

  5. range.Style.Font.IsBold = true;//设置标题字体加粗

  6. range.Style.Font.Size = 14;//设置字体大小为14

  7. range.Style.HorizontalAlignment = HorizontalAlignType.Center;//设置标题水平居中

  8. range.Style.VerticalAlignment = VerticalAlignType.Center;//设置标题垂直居中

  9. worksheet.Range["A1:J1"].Merge();//合并A1到J1的单元格为一个

  10.      }
步骤三:以一个数据库中的一个datatable的数据作为报表数据
  1. static void AddReportData(Worksheet worksheet)

  2.    {

  3. worksheet.InsertDataTable(dataTable, true, 2, 1);//从第二行第一列的单元格开始插入一个dataTable,并将列头的数据也添加

  4. CellStyle style = worksheet.Range["A2:J2"].Style;//获取A2到J2的单元格的格式

  5. style.Font.Color = Color.White;//设置字体颜色为白色

  6. style.KnownColor = ExcelColors.Green;//设置单元格的背景颜色为绿色

  7. style.Font.IsBold = true;//设置字体加粗

  8. style.HorizontalAlignment = HorizontalAlignType.Center;//设置文本水平居中

  9. style.VerticalAlignment = VerticalAlignType.Center;//设置文本垂直居中

  10. style.Borders[BordersLineType.EdgeLeft].LineStyle = LineStyleType.Thin;//设置左边的border

  11. style.Borders[BordersLineType.EdgeRight].LineStyle = LineStyleType.Thin;//设置右边的border

  12. style.Borders[BordersLineType.EdgeTop].LineStyle = LineStyleType.Thin;//设置上面的border

  13. style.Borders[BordersLineType.EdgeBottom].LineStyle = LineStyleType.Thin;//设置下面的border



  14. CellStyle oddStyle = worksheet.Workbook.Styles.Add("oddStyle");//创建一个style并命名为"oddStyle"

  15. oddStyle.Borders[BordersLineType.EdgeLeft].LineStyle = LineStyleType.Thin;

  16. oddStyle.Borders[BordersLineType.EdgeRight].LineStyle = LineStyleType.Thin;

  17. oddStyle.Borders[BordersLineType.EdgeTop].LineStyle = LineStyleType.Thin;

  18. oddStyle.Borders[BordersLineType.EdgeBottom].LineStyle = LineStyleType.Thin;

  19. oddStyle.KnownColor = ExcelColors.LightGreen1;



  20. CellStyle evenStyle = worksheet.Workbook.Styles.Add("evenStyle");//创建一个style并命名为"evenStyle"

  21. evenStyle.Borders[BordersLineType.EdgeLeft].LineStyle = LineStyleType.Thin;

  22. evenStyle.Borders[BordersLineType.EdgeRight].LineStyle = LineStyleType.Thin;

  23. evenStyle.Borders[BordersLineType.EdgeTop].LineStyle = LineStyleType.Thin;

  24. evenStyle.Borders[BordersLineType.EdgeBottom].LineStyle = LineStyleType.Thin;

  25. evenStyle.KnownColor = ExcelColors.LightTurquoise;

  26.         //为A3到J20的单元格设置格式,如果是奇数行使用oddStyle,如果是偶数行使用evenStyle

  27.             foreach (CellRange range in worksheet.Range["A3:J20"].Rows)

  28.             {

  29.                 if (range.Row % 2 == 0)

  30.                     range.CellStyleName = evenStyle.Name;

  31.                 else

  32.                     range.CellStyleName = oddStyle.Name;

  33.             }

  34.          worksheet.AllocatedRange.AutoFitColumns();//自动调整列的宽度去适应单元格的数据

  35.          worksheet.AllocatedRange.AutoFitRows();//自动调整行的高度去适应单元格的数据

  36.     }
步骤四:添加过滤器
  1. worksheet.AutoFilters.Range=worksheet.Range["A2:J20"];
步骤五:保存文档至Excel
  1. string output = "Report.xlsx";
  2. workbook.SaveToFile(output,ExcelVersion.Version2010);
全部完成以上步骤后,调试运行程序,生辰文档,如下图所示




相关文章

  • 一些系统可能需求把数据导出到Access或者Excel文件格式,以方便的传递数据.打印等.Excel 文件或者 Access这两种需要导出的文件可能并不是事先就存在的,这就需要我们自己编程生成他们,下面整理一下生成这两个文件的一些方法,只罗 ...
  • Excel里面最实用的7个技巧,全会人的很少!
    那么在Excel里面有哪些最实用的小技巧呢?今天小编为大家盘点了7个我们职场工作中最常见的Excel技巧,全会的人很少! 我们在统计报表时候,有时候需要画出重复的数据,这时候如果是用肉眼去观察那是相当费劲的! 首先我们需要全选数据,然后点击 ...
  • 这样的代码,单纯看注释,就会烦死人!!!!!#region 导出EXCEL方法二        ///        /// 此方法关键之处是使用Range一次存储内存中的多行多列数据到Excel        /// 此方法效率明显高的多 ...
  • 报表控件哪家强?.NET三大报表控件盘点
    对于大型的综合程序,特别是企业级的程序解决方案,都会依赖报表来解决企业中的各种数据及可视化表现,从而让企业掌握运营中的各项数据汇 总..NET程序中著名的三大报表控件是:FastReport.Net.ActiveReports.Stimul ...
  • Workbook类提供的方法 1. int getNumberOfSheets() 获得工作薄(Workbook)中工作表(Sheet)的个数,示例: jxl.Workbook rwb = jxl.Workbook.getWorkbook( ...
  • 两款.NET电子表格组件使用心得
    大家早已习惯了电子表格带来的方便,对表格的需求也越来越高.作为一个开发人员,我尝试了多款表格控件,SpreadsheetGear和Spread.NET这两款软件是我认为比较好用的,下面就我对这两款表格控件的使用简单的总结一下,希望和大家多多 ...

2019 unjeep.com webmaster#unjeep.com
12 q. 0.013 s.
京ICP备10005923号