利用OWC11做了一个饼图,想显示每一个部分的比例代码如下public string CreatePie()
{
Microsoft.Office.Interop.Owc11.ChartSpace objCSpace = new Microsoft.Office.Interop.Owc11.ChartSpaceClass();
//创建ChartSpace对象来放置图表
Microsoft.Office.Interop.Owc11.ChChart objChart = objCSpace.Charts.Add(0);//在ChartSpace对象中添加图表,Add方法返回chart对象
//指定图表的类型
objChart.Type=Microsoft.Office.Interop.Owc11.ChartChartTypeEnum.chChartTypePie;
//指定图表是否需要图例
objChart.HasLegend = true;
//标题
objChart.HasTitle = true;
objChart.Title.Caption= "Pie Test";
//添加一个series
Microsoft.Office.Interop.Owc11.ChSeries ThisChSeries = objChart.SeriesCollection.Add(0); //给定series的名字
ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimSeriesNames,
Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(),"ggggggggggggggg");
//给定分类
ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimCategories,
Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(),"1\t2\t3\t4\t5");
//给定值
ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimValues,
Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(),"30\t40\t58\t55\t44");
//表示系列或趋势线上的单个数据标志
Microsoft.Office.Interop.Owc11.ChDataLabels dl=objChart.SeriesCollection[0].DataLabelsCollection.Add();
dl.HasValue=true;
dl.HasPercentage=true;
//dl.HasCategoryName=true;
//图表绘图区的图例放置在右侧。
// dl.Position=Microsoft.Office.Interop.Owc11.ChartDataLabelPositionEnum.chLabelPositionRight;
string filename=DateTime.Now.Ticks.ToString()+".gif";
string strAbsolutePath = (Server.MapPath(".")) + "\\"+filename;
objCSpace.ExportPicture(strAbsolutePath, "GIF", 500, 500);//输出成GIF文件. return filename;
}将这个生成的图片显示到页面上以后,发现比率不对,总合竟然大于100%,百思不得解,盼赐教!
分不够再加
{
Microsoft.Office.Interop.Owc11.ChartSpace objCSpace = new Microsoft.Office.Interop.Owc11.ChartSpaceClass();
//创建ChartSpace对象来放置图表
Microsoft.Office.Interop.Owc11.ChChart objChart = objCSpace.Charts.Add(0);//在ChartSpace对象中添加图表,Add方法返回chart对象
//指定图表的类型
objChart.Type=Microsoft.Office.Interop.Owc11.ChartChartTypeEnum.chChartTypePie;
//指定图表是否需要图例
objChart.HasLegend = true;
//标题
objChart.HasTitle = true;
objChart.Title.Caption= "Pie Test";
//添加一个series
Microsoft.Office.Interop.Owc11.ChSeries ThisChSeries = objChart.SeriesCollection.Add(0); //给定series的名字
ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimSeriesNames,
Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(),"ggggggggggggggg");
//给定分类
ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimCategories,
Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(),"1\t2\t3\t4\t5");
//给定值
ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimValues,
Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(),"30\t40\t58\t55\t44");
//表示系列或趋势线上的单个数据标志
Microsoft.Office.Interop.Owc11.ChDataLabels dl=objChart.SeriesCollection[0].DataLabelsCollection.Add();
dl.HasValue=true;
dl.HasPercentage=true;
//dl.HasCategoryName=true;
//图表绘图区的图例放置在右侧。
// dl.Position=Microsoft.Office.Interop.Owc11.ChartDataLabelPositionEnum.chLabelPositionRight;
string filename=DateTime.Now.Ticks.ToString()+".gif";
string strAbsolutePath = (Server.MapPath(".")) + "\\"+filename;
objCSpace.ExportPicture(strAbsolutePath, "GIF", 500, 500);//输出成GIF文件. return filename;
}将这个生成的图片显示到页面上以后,发现比率不对,总合竟然大于100%,百思不得解,盼赐教!
分不够再加
解决方案 »
- DataGrid的样式问题
- sqlparameter可以建数组不?
- ======《请教dll问题,高分奉送》======
- 为什么使用asp.net发送的html邮件中文是乱码,请帮忙解答!
- jquery 意外地调用了方法或属性访问
- 浮动广告在html页中可以,在Aspx中不行
- DropDownList读取XML文档中的节点值
- 初级菜鸟问题 哪位用过HHFeditor在线编辑器 2.0 .用时怎么读取里面的文章的内容?
- 查询数据出来后,按datagrid的分页键浏缆下页时出问题!
- html中如何指定特定的播放器播放视频,比如爱奇艺,百度影音
- 在发布网站前,那些.cs代码文件一般都怎么处理呢?
- detailsview插入后进入Readonly就不能进入编辑状态
因为你设置数值也要显示,
最后的显示格式是[元数据,百分比%]
如果只现实百分比值,把dl.HasValue=false; 就可以了
dl.HasValue=false;
但是结果还是不对,
这几个比率依次为:30.13%,40.18%,58.26,55.24%,44.19%
这完全不可能啊,不知道什么原因,还是得赐教啊