利用免费的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内置的引擎来 ...
随机推荐
- sublime 编辑器配置和构建检查
sublime3插件 安装node包 jscs npm install jscs -g jshint npm install jshint -g csscomb npm install csscomb ...
- 原生JS制作贪吃蛇小游戏
感情都在代码里,来,干了!... <!doctype html> <html> <head> <meta http-equiv="Content-T ...
- 开源免费的HTML5游戏引擎
青瓷引擎的成长 青瓷引擎自2015年4月项目启动开始,7月首次亮相2015年ChinaJoy,便得到业界的极大关注,随后开启限量测试,收到数百个开发者团队的试用申请及反馈,期间经历了18个内测版本,完 ...
- Metaio在Unity3D中报错 Start: failed to load tracking configuration: TrackingConfigGenerated.xml 解决方法
报错:Start: failed to load tracking configuration: TrackingConfigGenerated.xml Start: failed to load t ...
- redis主从复制配置
master配置 主要是下面配置 # ~~~ WARNING ~~~ If the computer running Redis is directly exposed to the # intern ...
- nodejs 模块恩仇录
anywhere 一句话:随时随地将你的当前目录变成一个静态文件服务器的根目录. 安装 npm install anywhere -g anywhere -h localhost -p 8060 fa ...
- Git命令----放弃本地修改使用服务器上的代码
git reset --hard FETCH_HEAD FETCH_HEAD表示上一次成功git pull之后形成的commit点.
- java 多线程 继承Thread和实现Runnable的区别
1)继承Thread: public class ThreadTest extends Thread { private int count; private String name; public ...
- SQL Server2016 原生支持JSON
SQL Server2016 原生支持JSON SQL Server 2005 开始支持 XML 数据类型,提供原生的 XML数据类型.XML 索引以及各种管理 XML 或输出 XML 格式的函数. ...
- 剑指Offer面试题:12.在O(1)时间删除链表结点
一.题目:在O(1)时间删除链表结点 题目:给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点. 原文采用的是C/C++,这里采用C#,节点定义如下: public class ...