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

简介: 我们小组上个季度接手了一个项目其中需要实现创建excel文档的功能,寻找实现这个功能的控件的任务分配给了我,通过百度搜索我找到了一个免费的控件,它是由E-iceblue公司推出的spire.xls控件,接下来的一段时间我尝试地创建了多个应用程序来测试它所有的功能,说实话,这个控件功能很强大,它几乎包...

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

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

Workbook workbook =  new Workbook();
Worksheet worksheet = workbook.Worksheets[ 0];

2.制作报表的标题

static  void MakeTitle(Worksheet worksheet)
     {
CellRange range=worksheet.Range[ " A1 "]; // 获取A1单元格
range.Text =  " 职工人事信息表 "; // 添加标题
range.Style.Font.IsBold =  true; // 设置标题字体加粗
range.Style.Font.Size =  14; // 设置字体大小为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,  true21); // 从第二行第一列的单元格开始插入一个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 %  2 ==  0)
                    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文档里就可以了,它可以保存Excel2003Excel2007Excel2010Excel2013格式的文档

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

 

 

 

 

 

 

 

 


目录
相关文章
|
3月前
|
BI 索引 Python
python报表自动化系列 - 译码:与Excel单元格索引对应的十进制数坐标
python报表自动化系列 - 译码:与Excel单元格索引对应的十进制数坐标
16 1
|
3月前
|
BI 索引 Python
python报表自动化系列 - Excel单元格(Cell)索引范围对应的所有单元格
python报表自动化系列 - Excel单元格(Cell)索引范围对应的所有单元格
25 0
|
3月前
|
BI 索引 Python
python报表自动化系列 - 译码:将纯数字译码为Excel列坐标的字母索引表示形式
python报表自动化系列 - 译码:将纯数字译码为Excel列坐标的字母索引表示形式
22 1
|
9月前
|
XML 存储 安全
Excel电子表格的PHP类库:PHP_XLSXWriter(大数据量报表、后台运行、浏览器下载)
Excel电子表格的PHP类库:PHP_XLSXWriter(大数据量报表、后台运行、浏览器下载)
156 0
|
4月前
|
BI
JXLS 简化报表(excel数据)导出
JXLS 简化报表(excel数据)导出
31 0
|
6月前
|
Web App开发 开发者
SAP UI5 SmartTable 控件本地运行时进行 Excel 导出的单步调试(二)
SAP UI5 SmartTable 控件本地运行时进行 Excel 导出的单步调试
29 0
|
6月前
|
API UED
SAP UI5 SmartTable 控件本地运行时进行 Excel 导出的单步调试(一)
SAP UI5 SmartTable 控件本地运行时进行 Excel 导出的单步调试
44 0
|
6月前
|
XML 数据格式
关于 SAP UI5 控件内容的 Excel 导出功能,如何加载所需的导出工具库
关于 SAP UI5 控件内容的 Excel 导出功能,如何加载所需的导出工具库
36 0
|
6月前
SAP UI5 Table 控件数据进行 Excel 导出时如何进行格式控制
本教程的前一步骤,我们成功的将 sap.m.Table 控件里显示的数据导出到了本地 Excel 文件中。
38 0
|
9月前
|
数据可视化 数据挖掘 BI
Excel最佳替代品!免费好用功能全,一键制作可视化报表|伙伴云
Excel最佳替代品!免费好用功能全,一键制作可视化报表|伙伴云