利用免费的Spire.XLS控件制作Excel报表
我们小组上个季度接手了一个项目其中需要实现创建excel文档的功能,寻找实现这个功能的控件的任务分配给了我,通过百度搜索我找到了一个免费的控件,它是由E-iceblue公司推出的spire.xls控件,接下来的一段时间我尝试地创建了多个应用程序来测试它所有的功能,说实话,这个控件功能很强大,它几乎包含了Microsoft Excel的所有功能,而且使用它不需要安装Microsoft的Office,另外里面的方法属性的命名基本上是和MS Excel中的功能相对应的,不清楚的功能可参考MS Excel就能找到相对于的属性和方法来实现,对于我这个新手来说短短的几周时间内就几乎尝试了所有的功能,目前我们已经把它应用到我们的项目中了。使用了它那么久,到目前为止还是很满意的,在这里就向大家分享一下。由于它有太多的功能,需要太多的时间一一列出,下面我先用一个制作报表的例子来展示它的部分功能, 更多的功能以后慢慢地再分享给大家。
1.创建一个空的excel 文档,获取它的第一个sheet
Workbook workbook = new Workbook(); Worksheet worksheet = workbook.Worksheets[];
2.制作报表的标题
static void MakeTitle(Worksheet worksheet) { CellRange range=worksheet.Range["A1"];//获取A1单元格 range.Text = "职工人事信息表";//添加标题 range.Style.Font.IsBold = true;//设置标题字体加粗 range.Style.Font.Size = ;//设置字体大小为14 range.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";
下面我就附上我如何添加报表数据的代码:
static void AddReportData(Worksheet worksheet) { worksheet.InsertDataTable(dataTable, true, , );//从第二行第一列的单元格开始插入一个dataTable,并将列头的数据也添加 CellStyle style = 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;//设置左边的border style.Borders[BordersLineType.EdgeRight].LineStyle = LineStyleType.Thin;//设置右边的border style.Borders[BordersLineType.EdgeTop].LineStyle = LineStyleType.Thin;//设置上面的border style.Borders[BordersLineType.EdgeBottom].LineStyle = LineStyleType.Thin;//设置下面的border CellStyle oddStyle = 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; CellStyle evenStyle = 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,如果是偶数行使用evenStyle foreach (CellRange range in worksheet.Range["A3:J20"].Rows) { if (range.Row % == ) range.CellStyleName = evenStyle.Name; else range.CellStyleName = oddStyle.Name; } worksheet.AllocatedRange.AutoFitColumns();//自动调整列的宽度去适应单元格的数据 worksheet.AllocatedRange.AutoFitRows();//自动调整行的高度去适应单元格的数据 }
效果图:
4.添加过滤器
worksheet.AutoFilters.Range=worksheet.Range["A2:J20"];
效果图:
5.到这里这个报表就做好了,接下来把它保存到一个excel文档里就可以了,它可以保存Excel2003,Excel2007,Excel2010,Excel2013格式的文档
string output = "Report.xlsx"; workbook.SaveToFile(output,ExcelVersion.Version2010);
利用免费的Spire.XLS控件制作Excel报表的更多相关文章
- C/S模式开发中如何利用WebBrowser控件制作导航窗体
原文:C/S模式开发中如何利用WebBrowser控件制作导航窗体 转自: CSDN 相信不少同学们都做过MIS系统的开发,今天这里不讨论B/S模式开发的问题.来谈谈winform开发.用过市面上常见 ...
- 利用Aspose.Cell控件导入Excel非强类型的数据
导入Excel的操作是非常常见的操作,可以使用Aspose.Cell.APOI.MyXls.OLEDB.Excel VBA等操作Excel文件,从而实现数据的导入,在导入数据的时候,如果是强类型的数据 ...
- 免费使用的图表控件XML/SWF Charts 5.08
免费使用的图表控件XML/SWF Charts 5.08 http://www.pin5i.com/showtopic-26053.html 10个免费的在线统计图表工具 http://paranim ...
- Android中如何利用attrs和styles定义控件
一直有个问题就是,Android中是如何通过布局文件,就能实现控件效果的不同呢?比如在布局文件中,我设置了一个TextView,给它设置了 textColor,它就能够改变这个TextView的文本的 ...
- 利用来JS控制页面控件显示和隐藏有两种方法
利用来JS控制页面控件显示和隐藏有两种方法,两种方法分别利用HTML的style中的两个属性,两种方法的不同之处在于控件隐藏后是否还在页面上占空位. 方法一: 1 2 document.getEle ...
- C#使用splitContainer控件制作收缩展开面板
C#使用splitContainer控件制作收缩展开面板 原创 2011年07月19日 17:18:02 标签: c# / object / 扩展 / 测试 15690 最近对Squi ...
- 使用Aspose.Cell控件实现Excel高难度报表的生成(一)
时光飞逝,生活.工作.业余研究总是在不停忙碌着,转眼快到月底,该月的博客文章任务未完,停顿回忆一下,总结一些经验以及好的东西出来,大家一起分享一下.本文章主要介绍报表的生成,基于Aspose.Cell ...
- 使用Aspose.Cell控件实现Excel高难度报表的生成(三)
在之前几篇文章中,介绍了关于Apsose.cell这个强大的Excel操作控件的使用,相关文章如下: 使用Aspose.Cell控件实现Excel高难度报表的生成(一) 使用Aspose.Cell控件 ...
- (转)使用Aspose.Cell控件实现Excel高难度报表的生成(一)
本文章主要介绍报表的生成,基于Aspose.Cell控件的报表生成.谈到报表,估计大家都有所领悟以及个人的理解,总的来说,一般的报表生成,基本上是基于以下几种方式:一种是基于微软Excel内置的引擎来 ...
随机推荐
- python setup.py 管理
发布项目遇到了坑……特此记录. How to write setup.py: https://docs.python.org/2/distutils/setupscript.html Setup.py ...
- Oozie_示例
Oozie 官方示例 解压oozie-examples.tar.gz 将examples/上传到HDFS家目录 $ bin/hdfs dfs -put /opt/cdh-5.6.3/oozie-4.0 ...
- Smart3D系列教程7之 《手动配置S3C索引加载全部的瓦片数据》
一.前言 迄今为止,Wish3D已经出品推出了6篇系列教程,从倾斜摄影的原理方法.采集照片的技巧.Smart3D各模块的功能应用.小物件的照片重建.大区域的地形重建到DSM及正射影像的处理生产,立足于 ...
- C++风格的回调对象方法. 采用template实现
今天看了一篇文章,收藏一下代码.读一读很有激情 #include <iostream> #include <string> #include <vector> us ...
- Red Hat5.5 install Generic mysql-5.7.10
1.确认以下依赖包已安装 [ncurses ncurses-devel openssl-devel bison autoconf automake bison gcc m4 libtool make ...
- WUI 前端组件
为什么会有WUI前端组件,我们接触的UI组件如:YUI.EXTjs.EasyUI,这些组件虽然提供了丰富的UI,并且一定程度上缩短了开始时间,单这些组件提供的页面风格是统一的,我们的产品风格不可能像这 ...
- Jquery 系列(1) 基本认识
本系列Jquery所用测试Demo版本是<uncompressed,development jQuery 1.11.3> 最新的jquery包可以从官网下载请参照http://jquery ...
- 用chrome来映射查找样式对应的sass
较新版本的sass(3.3+)支持source-map功能,可以配合谷歌浏览器或者livestyle来映射查找对应的样式. 要生成source-map可以在grunt中使用 grunt-contrib ...
- Eclipse 常用快捷键 (动画讲解)
Eclipse有强大的编辑功能, 工欲善其事,必先利其器, 掌握Eclipse快捷键,可以大大提高工作效率. 编辑相关快捷键 注释 Ctrl + / 快速修复 Ctrl + ...
- [Linux] linux下安装配置 zookeeper/redis/solr/tomcat/IK分词器 详细实例.
今天 不知自己装的centos 出现了什么问题, 一直卡在 启动界面, 找了半天没找见原因(最后时刻还是发现原因, 只因自己手欠一怒之下将centos删除了, 而且选择的是在本地磁盘也删除. ..让我 ...