在.NET中不安装Office使用EPPlus生成带图表的Excel报表.doc

上传人:灯火****19 文档编号:138010472 上传时间:2020-07-13 格式:DOC 页数:5 大小:253.50KB
返回 下载 相关 举报
在.NET中不安装Office使用EPPlus生成带图表的Excel报表.doc_第1页
第1页 / 共5页
在.NET中不安装Office使用EPPlus生成带图表的Excel报表.doc_第2页
第2页 / 共5页
在.NET中不安装Office使用EPPlus生成带图表的Excel报表.doc_第3页
第3页 / 共5页
在.NET中不安装Office使用EPPlus生成带图表的Excel报表.doc_第4页
第4页 / 共5页
在.NET中不安装Office使用EPPlus生成带图表的Excel报表.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《在.NET中不安装Office使用EPPlus生成带图表的Excel报表.doc》由会员分享,可在线阅读,更多相关《在.NET中不安装Office使用EPPlus生成带图表的Excel报表.doc(5页珍藏版)》请在金锄头文库上搜索。

1、在.NET中不安装Office使用EPPlus生成带图表(Chart)的Excel报表在开发.NET应用中可能会遇到需要生成带图表(Chart)的Excel报表的需求,特别是在一些ASP.NET网站中,有时候我们并不能保证Web服务器上一定安装了Office组件,所以使用微软的Office来生成Excel并不保证在所有情况下都使用,有时候即使Web服务器上安装了Office也会出现一些运行权限方面的原因到导致调用Excel组件生成Excel失败,所以在这里介绍一种无需安装Office并且无需较高权限就能生成Excel的方法。EPPlus简介在介绍EPPlus之前,首先要介绍一下Office O

2、pen XML。以下文字来自于维基百科(网址:http:/zh.wikipedia.org/wiki/Office_Open_XML,有删节):Office Open XML(缩写:Open XML、OpenXML或OOXML),是由Microsoft开发的一种以XML为基础并以ZIP格式压缩的电子文件,支持Word、Excel、Office Note、PPT等文件格式。OOXML在2006年12月成为了ECMA规范的一部分,编号为ECMA-376;并于2008年4月国际标准化组织(ISO)的表決,在两个月公布为ISOIEC 29500国际标准。从Microsoft Office 2007开始

3、,Office Open XML文件格式已经成为Microsoft Office默认的文件格式。Microsoft Office 2010支持对ECMA-376标准文档的读操作,ISO/IEC 29500 Transitional的读/写,ISO/IEC 29500 Strict的读取。Microsoft Office 2013同时支持ISO/IEC 29500 Strict的读写操作。EPPlus就是一个通过Open XML方式来读写Office文件的开源.NET类库,所以使用它生成Office文件完全不需要Microsoft Office(当然如果你需需要查看生成的文件就需要Office了

4、)。它的官方网址是:。如果需要体验本文中提到的效果,需要从这个网址下载最新版本的类库,我现在使用的这个名为EPPlus.dll类库仅658K,非常方便部署。代码示例为了演示EPPlus的用法,这里写了一个简单的例子,在这个例子里演示模拟了几大公司实际业绩与计划业绩的百分比,如果这个百分比大于95%则会将所在的单元格显示为绿色,如果小于90%则会显示为红色,否则就显示为黄色,并且还会生成一个图标来直观表示每月实际完成情况与计划的百分比。完整代码如下:/* * * * Project A report project * Module Name Excel Report * Author Zhou

5、, Jin-Qiao (周金桥) * Creation Date 11/03/2013 * Description Generate Excel Report with Chat demo by Epplus * * Copyright 2013 zhoufoxcn. * * */using System;using System.Data;using System.Drawing;using System.IO;using OfficeOpenXml;using OfficeOpenXml.Drawing.Chart;using OfficeOpenXml.Style;namespace E

6、xcelReportApplication / / 使用EPPlus生成带图表(Chart)的Excel文件的例子,注意在运行的机器上无需安装Office,因为EPPlus是使用基于OpenXML技术生成的Excel文件。 / 任何网站和个人均可在不对本代码做任何修改的情况下转载本文及本文中示例的代码用于非商业用途,任何除去版权的行为均为侵权。 / 作者:周公(周金桥) / 创建日期:2013-11-03 / 博客地址:http:/ http:/ / 新浪微博地址:http:/ public class ExcelExportPage private static readonly strin

7、g MonthNames = new string 一月, 二月, 三月, 四月, 五月, 六月, 七月, 八月, 九月, 十月, 十一月, 十二月; /private static readonly string CommpanyNames = new string Microsoft, IBM, Oracle, Amazon, Google, Facebook, Twitter, Paypal, Yahoo, HP ; private static readonly string CommpanyNames = new string Microsoft, IBM, Oracle, Goog

8、le,Yahoo, HP ; static void Main(string args) ExcelExportPage.GenerateExcelReport(); / / 周公(周金桥)说明:这个方法就是主要演示如何生成带图表(Chart)的Excel文件的例子 / public static void GenerateExcelReport() string fileName = ExcelReport-+DateTime.Now.ToString(yyyy_MM_dd_HHmmss) + .xlsx; string reportTitle = 2013年度五大公司实际情况与原计划的百分

9、比; FileInfo file = new FileInfo(C:+fileName); using (ExcelPackage package = new ExcelPackage(file) ExcelWorksheet worksheet = null; ExcelChartSerie chartSerie = null; ExcelLineChart chart = null; #region research worksheet = package.Workbook.Worksheets.Add(Data); DataTable dataPercent = GetDataPerce

10、nt(); /chart = Worksheet.Drawings.AddChart(ColumnStackedChart, eChartType.Line) as ExcelLineChart; chart = worksheet.Drawings.AddChart(ColumnStackedChart, eChartType.LineMarkers) as ExcelLineChart;/设置图表样式 chart.Legend.Position = eLegendPosition.Right; chart.Legend.Add(); chart.Title.Text = reportTit

11、le;/设置图表的名称 /chart.SetPosition(200, 50);/设置图表位置 chart.SetSize(800, 400);/设置图表大小 chart.ShowHiddenData = true; /chart.YAxis.MinorUnit = 1; chart.XAxis.MinorUnit = 1;/设置X轴的最小刻度 /chart.DataLabel.ShowCategory = true; chart.DataLabel.ShowPercent = true;/显示百分比 /设置月份 for (int col = 1; col = dataPercent.Colu

12、mns.Count; col+) worksheet.Cells1, col.Value = dataPercent.Columnscol - 1.ColumnName; /设置数据 for (int row = 1; row = dataPercent.Rows.Count; row+) for (int col = 1; col = dataPercent.Columns.Count; col+) string strValue = dataPercent.Rowsrow - 1col - 1.ToString(); if (col = 1) worksheet.Cellsrow + 1, col.Value

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号