C#利用OWC组件生成数据报表
2012-06-27 21:34
489 查看
OWC
Office Web Components是一组的COM控件,设计的目的是为众多的控件容器提供交互的电子表格建模,数据报表和数据可视化功能。OWC库包含四个主要的组件:电子表格组件,图表组件,透视表组件和数据源组件。在Office 2003以后的版本中不再有OWC组件了,需要到微软网站下载OWC组件
代码实例:
OWCDemo.aspx页面
OWCDemo.aspx.cs页面
运行运行结果:
本实例相关源码下载地址为:
http://download.csdn.net/detail/idays021/4397560
Office Web Components是一组的COM控件,设计的目的是为众多的控件容器提供交互的电子表格建模,数据报表和数据可视化功能。OWC库包含四个主要的组件:电子表格组件,图表组件,透视表组件和数据源组件。在Office 2003以后的版本中不再有OWC组件了,需要到微软网站下载OWC组件
代码实例:
OWCDemo.aspx页面
<table border="1" width="400"> <tr> <td> 柱状图 </td> <td> 饼图 </td> <td> 折线图 </td> </tr> <tr> <td> <asp:Image ID="imgChartTypeColumnClustered" runat="server" /> </td> <td> <asp:Image ID="imgPie" runat="server" /> </td> <td> <asp:Image ID="imgLine" runat="server" /> </td> </tr> </table>
OWCDemo.aspx.cs页面
using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using Microsoft.Office.Interop.Owc11; public partial class OWCDemo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { ShowChartTypeColumnClustered(); ShowChartTypePie(); ShowChartTypeLine(); } /// <summary> /// 生成折线图 /// </summary> private void ShowChartTypeLine() { //创建图形容器对象 ChartSpace chartSpace = new ChartSpace(); //添加图象对象 ChChart chChart = chartSpace.Charts.Add(0); chChart.Type = ChartChartTypeEnum.chChartTypeLine;//折线图 //设置图形对象的边框颜色 chChart.Border.Color = "Red"; //设置图形对象具有标题 chChart.HasTitle = true; //设置图形对象的标题 chChart.Title.Caption = "销售记录"; //设置图形对象的标题字体大小 chChart.Title.Font.Size = 12; //设置图形对象的标题字体加粗 chChart.Title.Font.Bold = true; //设置图形对象的标题颜色 chChart.Title.Font.Color = "Blue"; //设置是否显示图形,即每种颜色的说明 chChart.HasLegend = true; //设置图形对象的字体大小 chChart.Legend.Font.Size = 10; //设置图形对象的关联的文字位置 chChart.Legend.Position = ChartLegendPositionEnum.chLegendPositionBottom; //设置显示X轴上的标题 chChart.Axes[0].HasTitle = true; //设置X轴上的标题 chChart.Axes[0].Title.Caption = "月份"; //设置显示Y轴上的标题 chChart.Axes[1].HasTitle = true; //设置Y轴上的标题 chChart.Axes[1].Title.Caption = "销量"; //第一项------------------------------------------------------------------------------ ChSeries chSeries = chChart.SeriesCollection.Add(0); //设置系列关联的名字,注意各个数值之间必须以'\t'分隔,否则会被当作一个数据 chSeries.SetData(ChartDimensionsEnum.chDimCategories, (int)ChartSpecialDataSourcesEnum.chDataLiteral, "1\t2\t3\t4\t5\t6\t7\t8\t9\t10\t11\t12"); //设置系列的名字 chSeries.SetData(ChartDimensionsEnum.chDimSeriesNames, (int)ChartSpecialDataSourcesEnum.chDataLiteral, "X公司"); //设置系列的值,注意各个数值之间必须以'\t'分隔,否则会被当作一个数据 chSeries.SetData(ChartDimensionsEnum.chDimValues, -1, "300\t100\t643\t200\t300\t100\t643\t200\t300\t100\t643\t200"); //在柱状图里显示数值 //chSeries.DataLabelsCollection.Add(); //chSeries.DataLabelsCollection[0].HasValue = true; //chChart.SeriesCollection[0].DataLabelsCollection.Add(); //chChart.SeriesCollection[0].DataLabelsCollection[0].HasValue = true; //第二项-------------------------------------------------------------------------------------- chSeries = chChart.SeriesCollection.Add(0); //设置系列关联的名字,注意各个数值之间必须以'\t'分隔,否则会被当作一个数据 //chSeries.SetData(ChartDimensionsEnum.chDimCategories, (int)ChartSpecialDataSourcesEnum.chDataLiteral, "1\t2\t3\t4\t5\t6\t7\t8\t9\t10\t11\t12"); //设置系列的名字 chSeries.SetData(ChartDimensionsEnum.chDimSeriesNames, (int)ChartSpecialDataSourcesEnum.chDataLiteral, "Y公司"); //设置系列的值,注意各个数值之间必须以'\t'分隔,否则会被当作一个数据 chSeries.SetData(ChartDimensionsEnum.chDimValues, -1, "200\t300\t543\t300\t200\t600\t443\t700\t400\t300\t543\t700"); //在柱状图里显示数值 //chSeries.DataLabelsCollection.Add(); //chSeries.DataLabelsCollection[0].HasValue = true; //chChart.SeriesCollection[1].DataLabelsCollection.Add(); //chChart.SeriesCollection[1].DataLabelsCollection[0].HasValue = true; //结束-------------------------------------------------------------------------------------------------- //设置要保存的图片的名字 string fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + "Line.jpg"; //设置图片的保存路径 string filePath = Server.MapPath("~/images/") + fileName; //将当前图形对象导出成图片文件保存到磁盘上 chartSpace.ExportPicture(filePath, "jpg", 300, 300); //设置Image控件的Url地址以便显示 imgLine.ImageUrl = "images/" + fileName; } /// <summary> /// 生成饼图 /// </summary> private void ShowChartTypePie() { //创建图形容器对象 ChartSpace chartSpace = new ChartSpace(); //添加图象对象 ChChart chChart = chartSpace.Charts.Add(0); chChart.Type = ChartChartTypeEnum.chChartTypePie;//饼图 //chChart.Border.Color = "green"; //设置图形对象具有标题 chChart.HasTitle = true; //设置图形对象的标题 chChart.Title.Caption = "上网方式统计"; //设置图形对象的标题字体大小 chChart.Title.Font.Size = 12; //设置图形对象的标题字体加粗 chChart.Title.Font.Bold = true; //设置图形对象的标题颜色 chChart.Title.Font.Color = "Blue"; //设置是否显示图形 ,即每种颜色的说明 chChart.HasLegend = true; //设置图形对象的字体大小 chChart.Legend.Font.Size = 10; //设置图形对象的关联的文字位置 chChart.Legend.Position = ChartLegendPositionEnum.chLegendPositionBottom; ChSeries chSeries = chChart.SeriesCollection.Add(0); //设置系列的值,注意各个数值之间必须以'\t'分隔,否则会被当作一个数据 chSeries.SetData(ChartDimensionsEnum.chDimValues, (int)ChartSpecialDataSourcesEnum.chDataLiteral, "16.3\t59.3\t8.3\t16.1"); //设置系列关联的名字,注意各个数值之间必须以'\t'分隔,否则会被当作一个数据 chSeries.SetData(ChartDimensionsEnum.chDimCategories, (int)ChartSpecialDataSourcesEnum.chDataLiteral, "拨号\tASDL\t光纤\t小区宽带"); chSeries.DataLabelsCollection.Add(); //chSeries.DataLabelsCollection[0].HasValue = true; chSeries.DataLabelsCollection[0].HasPercentage = true; //设置要保存的图片的名字 string fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + "Pie.jpg"; //设置图片的保存路径 string filePath = Server.MapPath("~/images/") + fileName; //将当前图形对象导出成图片文件保存到磁盘上 chartSpace.ExportPicture(filePath, "jpg", 300, 300); //设置Image控件的Url地址以便显示 imgPie.ImageUrl = "images/" + fileName; } /// <summary> /// 生成柱状图 /// </summary> protected void ShowChartTypeColumnClustered() { //创建图形容器对象 ChartSpace chartSpace = new ChartSpace(); //添加图象对象 ChChart chChart = chartSpace.Charts.Add(0); //设置图形对象图例类型,这里设置成柱状图, //注意:图形类型不同,所用到的属性可能就不会相同,比如饼图就不能设置X,Y轴的属性 chChart.Type = ChartChartTypeEnum.chChartTypeColumnClustered;//柱状图 //chChart.Type = ChartChartTypeEnum.chChartTypeLine;//折线图 //chChart.Type = ChartChartTypeEnum.chChartTypeArea;//面积图 //chChart.Type = ChartChartTypeEnum.chChartTypeBarClustered;//条形图 //chChart.Type = ChartChartTypeEnum.chChartTypePie;//饼图 //设置图形对象的边框颜色 chChart.Border.Color = "Red"; //设置图形对象具有标题 chChart.HasTitle = true; //设置图形对象的标题 chChart.Title.Caption = "报表标题"; //设置图形对象的标题字体大小 chChart.Title.Font.Size = 12; //设置图形对象的标题字体加粗 chChart.Title.Font.Bold = true; //设置图形对象的标题颜色 chChart.Title.Font.Color = "Blue"; //设置是否显示图形,即每种颜色的说明 chChart.HasLegend = true; //设置图形对象的字体大小 chChart.Legend.Font.Size = 10; //设置图形对象的关联的文字位置 chChart.Legend.Position = ChartLegendPositionEnum.chLegendPositionBottom; //设置显示X轴上的标题 chChart.Axes[0].HasTitle = true; //设置X轴标题 chChart.Axes[0].Title.Caption = "人物"; //设置显示Y轴上的标题 chChart.Axes[1].HasTitle = true; //设置Y轴标题 chChart.Axes[1].Title.Caption = "数量"; //第一项----------------------------------------------------------------------------- ChSeries chSeries = chChart.SeriesCollection.Add(0); //设置系列关联的名字,注意各个数值之间必须以'\t'分隔,否则会被当作一个数据 chSeries.SetData(ChartDimensionsEnum.chDimCategories, (int)ChartSpecialDataSourcesEnum.chDataLiteral, "周公\t关公\t张公\t朱公"); //设置系列的名字 chSeries.SetData(ChartDimensionsEnum.chDimSeriesNames, (int)ChartSpecialDataSourcesEnum.chDataLiteral, "战斗力"); //设置系列的值,注意各个数值之间必须以'\t'分隔,否则会被当作一个数据 chSeries.SetData(ChartDimensionsEnum.chDimValues, -1, "800\t998\t990\t234"); //在柱状图里显示数值 chSeries.DataLabelsCollection.Add(); chSeries.DataLabelsCollection[0].HasValue = true; //第二项---------------------------------------------------------------------------------------------- chSeries = chChart.SeriesCollection.Add(1); //设置系列的名字 chSeries.SetData(ChartDimensionsEnum.chDimSeriesNames, (int)ChartSpecialDataSourcesEnum.chDataLiteral, "幽默指数"); chSeries.SetData(ChartDimensionsEnum.chDimValues, (int)ChartSpecialDataSourcesEnum.chDataLiteral, "999\t580\t320\t960"); //在柱状图里显示数值 chSeries.DataLabelsCollection.Add(); chSeries.DataLabelsCollection[0].HasValue = true; //结束--------------------------------------------------------------------------------------------------------------- //设置要保存的图片的名字 string fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + "ColumnClustered.jpg"; //设置图片的保存路径 string filePath = Server.MapPath("~/images/") + fileName; //将当前图形对象导出成图片文件保存到磁盘上 chartSpace.ExportPicture(filePath, "jpg", 300, 300); //设置Image控件的Url地址以便显示 imgChartTypeColumnClustered.ImageUrl = "images/" + fileName; } }
运行运行结果:
本实例相关源码下载地址为:
http://download.csdn.net/detail/idays021/4397560
相关文章推荐
- C#利用OWC组件生成数据报表
- C#利用ZedDemo组件生成数据报表
- C#利用ZedDemo组件生成数据报表
- 利用OWC组件生成EXCEL表(c#)
- (分享)利用reportviewer与C#一步一步生成报表
- 利用CrystalReport与C#生成报表(vs2010+sql2008)
- 利用c#+jquery+echarts生成统计报表(附源代码)
- 利用 LotusScript 实现用 Lotus Domino 的数据生成图形化的 Excel 报表
- 利用 LotusScript 实现用 Lotus Domino 的数据生成图形化的 Excel 报表
- 利用reportviewer与C#生成报表
- asp.net中利用OWC组件生成EXCEL表
- 利用MS Reporting Services与C#生成报表
- 利用reportviewer与C#生成报表
- C#生成Excel报表 用MyXls组件生成更完美
- 利用reportviewer与C#生成报表
- C# 利用ReportViewer生成报表
- ASP.NET中利用OWC组件生成EXCEL表
- C# 利用sql语句生成新的数据表
- C#调用office2003的OWC11组件生成报表统计图
- C#生成Excel报表 用MyXls组件生成更完美