• OWC中双刻度图表的实现


    前几天给一位朋友解决一个OWC的问题,开始一年难度倒是没有什么,就接下来了。第二天给她答复。待自已动手以后。才感到这个问题非常棘手。要求是生成"线—柱图",这个类型在OWC 的ChartChartTypeEnum枚举类型中是不存在的。这一下可傻了眼,感到无从下手了。不停的尝试,不停的找资料,哎,承诺的后果还真严重,折腾了近四个小时。终于有点眉目,不给整个Chart 对象指定类型,给表下的Series对象指定类型,先用一个Series对象画出柱图,然后再加入一个Series对象。指定类型为线型。问题解决。代码如下:

    using Microsoft.Office.Interop;
    using OWC= Microsoft.Office.Interop.Owc11;
    public partial class Default212 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            //创建ChartSpace对象来放置图表
            OWC.ChartSpace objCSpace = new OWC.ChartSpaceClass();

            //是否显示图例
            objCSpace.HasChartSpaceLegend = true;

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

            //指定图为柱形图
       

            //给定标题
            objChart.HasTitle = true;
            objChart.Title.Caption = "上半年分布图";

            //给定x,y轴的图示说明
            objChart.Axes[0].HasTitle = true;
            objChart.Axes[0].Title.Caption = "Y : 数量";
            objChart.Axes[1].HasTitle = true;
            objChart.Axes[1].Title.Caption = "X : 月份";

            //计算数据
            /*categories 和 values 可以用tab分割的字符串来表示*/
            string strSeriesName = "我的测试";
            string strSeriesName1 = "LAR";
            string strCategory = "1" + '\t' + "2" + '\t' + "3" + '\t' + "4" + '\t' + "5" + '\t' + "6" + '\t';
            string strValue = "9" + '\t' + "8" + '\t' + "4" + '\t' + "10" + '\t' + "12" + '\t' + "6" + '\t';
            string strValue1 = "0.038%" + '\t' + ".034%" + '\t' + ".039%" + '\t' + ".036%" + '\t' + ".040%" + '\t' + ".033%" + '\t';

            /*柱形图*/
            //添加一个series
            objChart.SeriesCollection.Add(0);
            objChart.SeriesCollection[0].Type = OWC.ChartChartTypeEnum.chChartTypeColumnClustered;
            //给定series的名字
            objChart.SeriesCollection[0].SetData(OWC.ChartDimensionsEnum.chDimSeriesNames,
                +(int)OWC.ChartSpecialDataSourcesEnum.chDataLiteral, strSeriesName);

            //给定分类
            objChart.SeriesCollection[0].SetData(OWC.ChartDimensionsEnum.chDimCategories,
                +(int)OWC.ChartSpecialDataSourcesEnum.chDataLiteral, strCategory);

            //给定objChart[0]的值
            OWC.ChSeries sDispDppm = objChart.SeriesCollection[0];
            sDispDppm.SetData
                (OWC.ChartDimensionsEnum.chDimValues,
                (int)OWC.ChartSpecialDataSourcesEnum.chDataLiteral, strValue);

            /*折线图*/
            //再增加一个Series
           
            OWC.ChSeries sDispLar = objChart.SeriesCollection.Add(0);
            sDispLar.Ungroup(true);
            OWC.ChAxis MyAxis = objChart.Axes.Add(sDispLar.get_Scalings(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimValues));
            MyAxis.Position = OWC.ChartAxisPositionEnum.chAxisPositionRight;
            MyAxis.HasMinorGridlines = false;
            MyAxis.NumberFormat = "0.00%";
            MyAxis.HasTitle = true;
            MyAxis.Title.Caption = "报废率(%)";
            //给定series的名字
            sDispLar.SetData(OWC.ChartDimensionsEnum.chDimSeriesNames,
                +(int)OWC.ChartSpecialDataSourcesEnum.chDataLiteral, strSeriesName1);

            //给定objChart[1]的值
            sDispLar.SetData
                (OWC.ChartDimensionsEnum.chDimValues,
                (int)OWC.ChartSpecialDataSourcesEnum.chDataLiteral, strValue1);

            //Ungroup series
            sDispLar.Type = OWC.ChartChartTypeEnum.chChartTypeLineMarkers;

            //输出成GIF文件.
            string strAbsolutePath = (Server.MapPath(".")) + "\\Temp\\test.gif";
            objCSpace.ExportPicture(strAbsolutePath, "GIF", 600, 350);


            //创建GIF文件的相对路径.
            string strRelativePath = "./Temp/test.gif";

            //显示图片
            Image1.ImageUrl = strRelativePath.ToString();


        }
    }

  • 相关阅读:
    概率的定义
    二项式分布与伯努利分布
    复数的表示方法
    <诗经>的由来
    王国维
    应该记住的历史事件
    switch条件变量的取值类型
    & 和 && 区别和联系,| 和 || 区别和联系
    成功安装 Visio 2016 和 Office 2016 的64位版本~~
    删除MicrosoftOffice2016的扫尾工作
  • 原文地址:https://www.cnblogs.com/xxm/p/408467.html
Copyright © 2020-2023  润新知