首页 > 学院 > 开发设计 > 正文

利用免费的Spire.XLS控件制作Excel报表

2019-11-17 02:41:07
字体:
来源:转载
供稿:网友

利用免费的Spire.XLS控件制作Excel报表

Posted on 2014-12-26 11:31 Yesi 阅读(...) 评论(...) 编辑 收藏

我们小组上个季度接手了一个项目其中需要实现创建excel文档的功能,寻找实现这个功能的控件的任务分配给了我,通过百度搜索我找到了一个免费的控件,它是由E-iceblue公司推出的spire.xls控件,接下来的一段时间我尝试地创建了多个应用程序来测试它所有的功能,说实话,这个控件功能很强大,它几乎包含了Microsoft Excel的所有功能,而且使用它不需要安装Microsoft的Office,另外里面的方法属性的命名基本上是和MS Excel中的功能相对应的,不清楚的功能可参考MS Excel就能找到相对于的属性和方法来实现,对于我这个新手来说短短的几周时间内就几乎尝试了所有的功能,目前我们已经把它应用到我们的项目中了。使用了它那么久,到目前为止还是很满意的,在这里就向大家分享一下。由于它有太多的功能,需要太多的时间一一列出,下面我先用一个制作报表的例子来展示它的部分功能, 更多的功能以后慢慢地再分享给大家。

1.创建一个空的excel 文档,获取它的第一个sheet

Workbookworkbook=newWorkbook();Worksheetworksheet=workbook.Worksheets[0];

2.制作报表的标题

staticvoidMakeTitle(Worksheetworksheet){CellRangerange=worksheet.Range["A1"];//获取A1单元格range.Text="职工人事信息表";//添加标题range.Style.Font.IsBold=true;//设置标题字体加粗range.Style.Font.Size=14;//设置字体大小为14range.Style.HorizontalAlignment=HorizontalAlignType.Center;//设置标题水平居中range.Style.VerticalAlignment=VerticalAlignType.Center;//设置标题垂直居中worksheet.Range["A1:J1"].Merge();//合并A1到J1的单元格为一个}

效果图

3.添加报表数据,为了方便,在这里我使用了一个数据库中的一个datatable的数据作为报表数据,当然你也可以分别为一个个单元格赋值

例如:如果是文本,可以使用

worksheet.Range["A1"].Text=data1;

如果是数字,可以使用

worksheet.Range["A1"].NumberValue=data2;

并设置它的输出格式

worksheet.Range["C5"].NumberFormat="#,##0.00";

下面我就附上我如何添加报表数据的代码:

staticvoidAddReportData(Worksheetworksheet){worksheet.InsertDataTable(dataTable,true,2,1);//从第二行第一列的单元格开始插入一个dataTable,并将列头的数据也添加CellStylestyle=worksheet.Range["A2:J2"].Style;//获取A2到J2的单元格的格式style.Font.Color=Color.White;//设置字体颜色为白色style.KnownColor=ExcelColors.Green;//设置单元格的背景颜色为绿色style.Font.IsBold=true;//设置字体加粗style.HorizontalAlignment=HorizontalAlignType.Center;//设置文本水平居中style.VerticalAlignment=VerticalAlignType.Center;//设置文本垂直居中style.Borders[BordersLineType.EdgeLeft].LineStyle=LineStyleType.Thin;//设置左边的borderstyle.Borders[BordersLineType.EdgeRight].LineStyle=LineStyleType.Thin;//设置右边的borderstyle.Borders[BordersLineType.EdgeTop].LineStyle=LineStyleType.Thin;//设置上面的borderstyle.Borders[BordersLineType.EdgeBottom].LineStyle=LineStyleType.Thin;//设置下面的borderCellStyleoddStyle=worksheet.Workbook.Styles.Add("oddStyle");//创建一个style并命名为"oddStyle"oddStyle.Borders[BordersLineType.EdgeLeft].LineStyle=LineStyleType.Thin;oddStyle.Borders[BordersLineType.EdgeRight].LineStyle=LineStyleType.Thin;oddStyle.Borders[BordersLineType.EdgeTop].LineStyle=LineStyleType.Thin;oddStyle.Borders[BordersLineType.EdgeBottom].LineStyle=LineStyleType.Thin;oddStyle.KnownColor=ExcelColors.LightGreen1;CellStyleevenStyle=worksheet.Workbook.Styles.Add("evenStyle");//创建一个style并命名为"evenStyle"evenStyle.Borders[BordersLineType.EdgeLeft].LineStyle=LineStyleType.Thin;evenStyle.Borders[BordersLineType.EdgeRight].LineStyle=LineStyleType.Thin;evenStyle.Borders[BordersLineType.EdgeTop].LineStyle=LineStyleType.Thin;evenStyle.Borders[BordersLineType.EdgeBottom].LineStyle=LineStyleType.Thin;evenStyle.KnownColor=ExcelColors.LightTurquoise;//为A3到J20的单元格设置格式,如果是奇数行使用oddStyle,如果是偶数行使用evenStyleforeach(CellRangerangeinworksheet.Range["A3:J20"].Rows){if(range.Row%2==0)range.CellStyleName=evenStyle.Name;elserange.CellStyleName=oddStyle.Name;}worksheet.AllocatedRange.AutoFitColumns();//自动调整列的宽度去适应单元格的数据worksheet.AllocatedRange.AutoFitRows();//自动调整行的高度去适应单元格的数据}

效果图

4.添加过滤器

worksheet.AutoFilters.Range=worksheet.Range["A2:J20"];

效果图

5.到这里这个报表就做好了,接下来把它保存到一个excel文档里就可以了,它可以保存Excel2003Excel2007Excel2010Excel2013格式的文档

stringoutput="Report.xlsx";workbook.SaveToFile(output,ExcelVersion.Version2010);


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表