C#使用OWC生成图表

最近做一个项目,按客户需求,需要生成一些报表,OWC是比较合适的组件.

1、如何安装OWC组件

OWC是Office Web Compents的缩写,即Microsoft的Office Web组件,包含SpreadSheet组件、Chart组件、PioTable组件和Data Source组件。

只要装了 Office 办公软件 ,在 C:\Program Files\MSECache\owc11_12 中会有一个安装文件: OWC11.msi (offic 2003)

2、安装完成后,新建一个工程,再添加引用...-->com--> Microsoft Office Web components 11.0 在bin文件夹中:Interop.OWC10.dll

引用空间:using Microsoft.Office.Interop.Owc11;

private void MakeLineChart()

{

//Y坐标轴

string[] DataName = { "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日" };

//第一条曲线的数据

int[] Data = { 0, 10, 20, 100, 40, 50, 60 };

//第二条曲线的数据

int[] Data1 = { 100, 50, 41, 86 };

//第三条曲线的数据

int[] Data2 = { 10, 50, 100, 30, 50, 60 };

string strValue1 = "";

string strValue = "";

string strValue2 = "";

string strCateory = "";

//循环取得数据并格式化为OWC10需要的格式,(加'\t')

for (int i = 0; i < DataName.Length; i++)

{

strCateory += DataName[i] + '\t';

}

for (int i = 0; i < Data.Length; i++)

{

strValue += Data[i].ToString() + '\t';

}

for (int i = 0; i < Data1.Length; i++)

{

strValue1 += Data1[i].ToString() + '\t';

}

for (int i = 0; i < Data2.Length; i++)

{

strValue2 += Data2[i].ToString() + '\t';

}

OWC10.ChartSpaceClass mySpace = new OWC10.ChartSpaceClass();//创建ChartSpace对象来放置图表

OWC10.ChChart myChart = mySpace.Charts.Add(0);//在ChartSpace对象中添加图表,Add方法返回chart对象

myChart.Type = OWC10.ChartChartTypeEnum.chChartTypeColumnClustered;//指定图表的类型为线性图

myChart.HasLegend = true;//指定图表是否需要图例

myChart.HasTitle = true;//给定标题

myChart.Title.Caption = "交易曲线图"; //图表名称

//给定X\Y轴的图示说明

myChart.Axes[0].HasTitle = true;

myChart.Axes[0].Title.Caption = "数量"; //横轴名称

myChart.Axes[1].HasTitle = true;

myChart.Axes[1].Title.Caption = "日期"; //纵轴名称

//添加一个series(序列)

myChart.SeriesCollection.Add(0);

//给定series的名字

myChart.SeriesCollection[0].SetData(OWC10.ChartDimensionsEnum.chDimSeriesNames, (int)OWC10.ChartSpecialDataSourcesEnum.chDataLiteral, "购买");

//给定series的分类

myChart.SeriesCollection[0].SetData(OWC10.ChartDimensionsEnum.chDimCategories, (int)OWC10.ChartSpecialDataSourcesEnum.chDataLiteral, strCateory);

//给定具体值

myChart.SeriesCollection[0].SetData(OWC10.ChartDimensionsEnum.chDimValues, (int)OWC10.ChartSpecialDataSourcesEnum.chDataLiteral, strValue);

//添加一个series

myChart.SeriesCollection.Add(1);

//给定series的名字

myChart.SeriesCollection[1].SetData(OWC10.ChartDimensionsEnum.chDimSeriesNames, (int)OWC10.ChartSpecialDataSourcesEnum.chDataLiteral, "出售");

//给定series的分类

myChart.SeriesCollection[1].SetData(OWC10.ChartDimensionsEnum.chDimCategories, (int)OWC10.ChartSpecialDataSourcesEnum.chDataLiteral, strCateory);

//给定具体值

myChart.SeriesCollection[1].SetData(OWC10.ChartDimensionsEnum.chDimValues, (int)OWC10.ChartSpecialDataSourcesEnum.chDataLiteral, strValue1);

//添加一个series

myChart.SeriesCollection.Add(2);

//给定series的名字

myChart.SeriesCollection[2].SetData(OWC10.ChartDimensionsEnum.chDimSeriesNames, (int)OWC10.ChartSpecialDataSourcesEnum.chDataLiteral, "总成交");

//给定series的分类

myChart.SeriesCollection[2].SetData(OWC10.ChartDimensionsEnum.chDimCategories, (int)OWC10.ChartSpecialDataSourcesEnum.chDataLiteral, strCateory);

//给定具体值

myChart.SeriesCollection[2].SetData(OWC10.ChartDimensionsEnum.chDimValues, (int)OWC10.ChartSpecialDataSourcesEnum.chDataLiteral, strValue2);

//输出成GIF文件

string strAbsolutePath = (Server.MapPath(".")) + @"\Images\tempChart.gif";

Response.Write(strAbsolutePath);

mySpace.ExportPicture(strAbsolutePath, "GIF", 300, 300); //输出图表

//创建GIF文件的相对路径

string strRelativePath = "Images/tempChart.gif";

//把图片添加到Image

Image1.ImageUrl = strRelativePath;

}

//图表类型枚举

OWC11.ChartChartTypeEnum[] chartTypes = new OWC11.ChartChartTypeEnum[]{

ChartChartTypeEnum.chChartTypeColumnClustered,

ChartChartTypeEnum.chChartTypeColumn3D,

ChartChartTypeEnum.chChartTypeBarClustered,

ChartChartTypeEnum.chChartTypeBar3D,

ChartChartTypeEnum.chChartTypeArea,

ChartChartTypeEnum.chChartTypeArea3D,

ChartChartTypeEnum.chChartTypeDoughnut,

ChartChartTypeEnum.chChartTypeLineStacked,

ChartChartTypeEnum.chChartTypeLine3D,

ChartChartTypeEnum.chChartTypeLineMarkers,

ChartChartTypeEnum.chChartTypePie,

ChartChartTypeEnum.chChartTypePie3D,

ChartChartTypeEnum.chChartTypeRadarSmoothLine,

ChartChartTypeEnum.chChartTypeSmoothLine};

string[] chartTypesCh = new string[] { "垂直柱状统计图", "3D垂直柱状统计图", "水平柱状统计图", "3D水平柱状统计

图", "区域统计图", "3D区域统计图", "中空饼图", "折线统计图", "3D折线统计图", "折线带点统计图", "饼图", "3D饼图", "网状统计

图", "弧线统计图" };

时间: 2024-12-02 09:16:38

C#使用OWC生成图表的相关文章

ASP.NET 2.0中使用OWC生成图表

ASP.NET 2.0中,要显示图型的话,可以用MS office 2003的OWC组件,可以 十分方便地看到图表.在工程中,首先添加microsoft office web components 11.0的引用就可以了,然后要using Microsoft.Office.Interop.Owc11; 1.生成柱状图 //创建X坐标的值,表示月份 int[] Month = new int[3] { 1, 2, 3 }; //创建Y坐标的值,表示销售额 double[] Count = new

C# OWC生成图表_实用技巧

1.如何安装OWC组件 OWC是Office Web Compents的缩写,即Microsoft的Office Web组件,包含SpreadSheet组件.Chart组件.PioTable组件和Data Source组件. 只要装了 Office 办公软件 ,在 C:\Program Files\MSECache\owc11_12 中会有一个安装文件: OWC11.msi (offic 2003) 2.安装完成后,新建一个工程,再添加引用...-->com--> Microsoft Offi

ASP 中利用OWC 服务器端组件动态生成图表

动态|服务器|图表 引:Web程序开发中,经常需要从数据库表文件中提取数据,并对大批量的数据进行分析比较,此时最常用也是最直观明了的表现方法莫过于绘制图表. ASP擅长服务器端的Web编程,操作后台数据库更是它的强项.但是用ASP制作实时数据库图表有点困难,因为ASP本身并不支持图表功能,只能借助第三方控件进行开发,如VB的MSChart 控件.而微软推出的实时数据库图表制作组件-- O W C(Microsoft Office Web Components),为在Web中绘制图形提供了灵活的同

利用OWC服务器端组件动态生成图表

动态|服务器|图表 利用OWC服务器端组件动态生成图表 以前在这里也曾经有一些文章谈到了在ASP中生成动态图表的问题,但那些文章中所谈到的一些方法都有某些方面的限制,如需要在客户端安装office2000或安装OWC,有些则可能在Intranet中使用时没什么问题,但在通过Internet访问的时候,就可能出现无法正常工作的现象(这主要和SQL Server的安全设置有关).那么,我们如何来避免这些问题呢?有一个很好的方法,就是将在ASP中生成的图表转换成图片文件保存在服务器上,这样用户最终看到

如何在ASP.NET中用OWC绘制图表(2)

asp.net|图表 OWC.aspx.vb: Imports SystemImports OWCImports System.Web.UI Public Class OWC  Inherits System.Web.UI.Page  Protected WithEvents ChartHolder As System.Web.UI.WebControls.PlaceHolder #Region " Web 窗体设计器生成的代码 "   '该调用是 Web 窗体设计器所必需的.  &l

如何在ASP.NET中用OWC绘制图表(1)

asp.net|图表 如何在ASP.NET中用OWC绘制图表 (1) 一.概述 二.设置图表引擎 三.OWC的许可证问题 四.OWC的运行机制 五.在Web服务器上安装OWC 10 六.OWC编程模式 ━━━━━━━━━━━━━ 正文: ━━━━━━━━━━━━━ 一.概述 在开发应用程序时,经常会遇到必须提供交互式图表的情况.例如,你可能在开发一个管理销售和产品数据的应用程序,数据保存在SQL Server数据库上,应用程序允许用户添加数据.更新现有数据,但除了这些功能之外,客户还要求应用程序

利用OWC生成统计报表(柱形图)

项目中牵涉到数据报表统计,客户需要生成柱形图进行统计.首先想到用OWC(Office Web Components),owc11控件是office图表控件(owc10是officeXP中的组件,owc11为office2003的组件,组件路径在:C:\Program Files\Common Files\Microsoft Shared\Web Components\11\owc11,帮助文件的路径为C:\Program Files\Common Files\Microsoft Shared\W

如何将表格自动生成图表插入到word文档?

  如何将表格自动生成图表插入到word文档? 1.先将自己想要插入的数据做成一个excel图表,打开excel工作软件,输入自己想要生成的内容,最好可以简单化一点. 2.将已经输入完成的excel表格保存,并建立一个word文档,双击进入该文档中. 3.进入word文档中侯,我们在上方菜单栏的位置找到"插入"功能,并且点击找到"图表". 4.点击图表,选择自己想要的图形形状,当然我们在选择形状的时候也要根据自己的excel表格中的数据来进行选择,找一个合适的图表才

为什么tsung生成图表中graphs report图片不显示

问题描述 为什么tsung生成图表中graphs report图片不显示 解决方案 哥们,你的问题解决了吗,我生成的报表图片都无法显示,报的是"未找到该页面"生成报告之前是否要配置啥才能看图表啊,你知道吗?谢谢