怎样用c# *** 作excel里的chart对象

怎样用c# *** 作excel里的chart对象,第1张

// <summary>
        /// 创建Chart,并设置相关属性
        /// 最后按照固定路径输出成gif图
        /// </summary>
        /// <param name="saveDocPath">保存路径</param>
        public void CreateChart(string saveDocPath)
        {
            ExcelSeries oSeries;
            ExcelChart oChart;
            oWB = (ExcelWorkbook)sheetParent;
            oChart = (ExcelChart)oWBChartsAdd(MissingValue, MissingValue,
                MissingValue, MissingValue);
//应用的数据"C39:C53"
            oChartSetSourceData((ExcelRange)sheetget_Range("C39:C53", MissingValue), MissingValue);         
            oChartChartAreaBorderLineStyle = ExcelXlLineStylexlLineStyleNone;//设置整个图表的边框线条          
            oChartChartAreaBorderColor = ColorTranslatorToOle(ColorBlack);// 设置整个图表的边框颜色
            oChartChartAreaInteriorColor = ColorTranslatorToOle(ColorWhite);// 设置整个图表的内部颜色
            oChartPlotAreaInteriorColor = ColorTranslatorToOle(ColorLightCyan); //设置绘图区的背景
            oChartPlotAreaWidth = 630;
            oChartPlotAreaHeight = 420;
            oChartPlotAreaTop = 60;
            oChartPlotAreaLeft = 15;
            //oChartPlotAreaInteriorColor = ColorTranslatorToOle(ColorFromName("#b2d235"));//一片黑,貌似不能用
            //oChartPlotAreaInteriorColor = ColorTranslatorToOle(ColorFromArgb(64, 224, 208)); 
            oChartHasLegend = false;//没有图例
            oChartHasTitle = true;//设置标题
            oChartChartTitleText = DateTimeNowYearToString()+"年"+DateTimeNowMonthToString()+"月"+DateTimeNowDayToString()+"日北京市区降雨量柱状图";
            oChartChartTitleFontName = "黑体";
            //oChartChartTitleFontBold = true;
            oChartChartTitleFontSize = 23;
            //oChartChartTitleBorderLineStyle = ExcelXlLineStylexlDouble;//标题的线框样式
            //oChartChartTitleShadow = true;
            
            ////Use the ChartWizard to create a new chart from the selected data
            //Rng = sheetget_Range("C39:C53", MissingValue);
            //oChartChartWizard(oResizeRng, ExcelXlChartTypexl3DColumn, MissingValue,
            //    ExcelXlRowColxlColumns, MissingValue, MissingValue, MissingValue,
            //    MissingValue, MissingValue, MissingValue, MissingValue);
            //oChartWallsBorderColor = ColorTranslatorToOle(ColorGreen);//walls只是在3D时使用
            //oChartWallsInteriorColor = ColorTranslatorToOle(ColorBlue);
            //oChartWallsAndGridlines2D = true;
            //设置圆柱样式
            oSeries = (ExcelSeries)oChartSeriesCollection(1);
            oSeriesXValues = sheetget_Range("B39", "B53");//x轴街道名称
            oSeriesBorderColor = ColorTranslatorToOle(ColorBlack);//圆柱的边框
            oSeriesBorderWeight = ExcelXlBorderWeightxlThin;//圆柱边框线宽
            oSeriesInteriorColor = ColorTranslatorToOle(ColorLime);//圆柱的内部颜色
            oSeriesHasDataLabels = true;//圆柱有数据标签
            
            //oChartLocation(ExcelXlChartLocationxlLocationAsObject, sheetName);
            //ExcelChartGroup grp = (ExcelChartGroup)oChartChartGroups(1);
            //grpGapWidth = 20;//柱形不同的颜色
            //grpVaryByCategories = true;
            //设置Y轴的显示
            ExcelAxis yAxis = (ExcelAxis)oWBActiveChartAxes(ExcelXlAxisTypexlValue,ExcelXlAxisGroupxlPrimary);
            yAxisMajorGridlinesBorderLineStyle = ExcelXlLineStylexlLineStyleNone;
            yAxisMajorGridlinesBorderColor = ColorTranslatorToOle(ColorAqua);//gridLine横向线条的颜色
            yAxisMajorGridlinesBorderWeight = ExcelXlBorderWeightxlThin;
            yAxisBorderColor = ColorTranslatorToOle(ColorBlack);//y轴颜色
            yAxisBorderWeight = ExcelXlBorderWeightxlThin;
            yAxisHasTitle = true;//y轴有标题
            yAxisAxisTitleText = "单位:mm";
            yAxisAxisTitleFontName = "宋体";
            yAxisAxisTitleFontSize = 17;
            //yAxisAxisTitleFontBold = true;
            yAxisAxisTitleTop = 35;
            yAxisAxisTitleOrientation = 0;//角度
            //yAxisMinimumScale = 1;
            //yAxisMaximumScale = 200;
            yAxisTickLabelsFontName = "宋体";//y轴数字样式
            yAxisTickLabelsFontSize = 14;
            yAxisTickLabelsFontBold = true;
            //设置X轴的显示
            ExcelAxis xAxis = (ExcelAxis)oWBActiveChartAxes(ExcelXlAxisTypexlCategory, ExcelXlAxisGroupxlPrimary);
            xAxisBorderColor = ColorTranslatorToOle(ColorBlack);//x轴颜色
            xAxisBorderWeight = ExcelXlBorderWeightxlThin;
            //yAxisTickLabelSpacing = 30;
            //xAxisTickLabelsOrientation = ExcelXlTickLabelOrientationxlTickLabelOrientationHorizontal;//Y轴显示的方向,是水平
            xAxisTickLabelsOrientation = (ExcelXlTickLabelOrientation)45;
            xAxisTickLabelsFontSize = 15;
            xAxisTickLabelsFontName = "楷体_GB2312";
            xAxisTickLabelsFontBold =false;
            
            //chart另存
            string chartName = "chart" + DateTimeNowToString("yyyyMMdd");
       oChartExport(saveDocPath+"\\"+chartName+"gif", "GIF", false);
        }

通常在工作中,Excel的图表转化都是用I插入l图表命令,然后一步一步正确设置图表的各个属性完成的。它属于Excel的高级 *** 作, *** 作人员需要经过一定的培训。本章利用VBA编程来实现图表转化自动化。这样,即便是没有使用过Excel的用户,都可以完成图表转化,通过表中数据得到对应的规律图。图表作为Excel的分析工具,实现了以图表形式显示数值化数据的功能用以达到分析报告的作用。它在Excel'扣是由Chart对象控制的。Chart对象分为工作簿下的Chart对象和工作表下的Chart对象。工作薄下的Chart对象作为独立的图表页存在。工作表下的Chart对象作为嵌入工作表中的图表对象存在。两者的属性和方法类似,主要区别就是存放的位置不同,本节主要介绍工作表中的Chart对象。学习利用Chart对象的属性和方法,实现对图表的自动化控制。Chart对象的最常用属性为ActiveChart属性。实际运用中,对图表对象的设置一般都是通过 ActiveChart属性来完成的。对于嵌入在图表中的Chart对象来说,如果用户选定了嵌入图表,或用Activate方法激活了包含嵌入图表的ChartObject对象,则该嵌入图表就处于活动状态。在Visual Basic代码中使用ActiveChart属性,既可引用嵌入图表,也可引用图表工作表(只要该图表处于活动状态)。

气泡图(bubble chart)是可用于展示三个变量之间的关系。它与散点图类似,绘制时将一个变量放在横轴,另一个变量放在纵轴,而第三个变量则用气泡的大小来表示。排列在工作表的列中的数据(第一列中列出 x 值,在相邻列中列出相应的 y 值和气泡大小的值)可以绘制在气泡图中。气泡图与散点图相似,不同之处在于:气泡图允许在图表中额外加入一个表示大小的变量进行对比。

先放一张气泡图的样例:是不是感觉有点高大上呢(^▽^)

下面就气泡图的制作步骤一步一步介绍:

首先看原始表格,如下下图:

1首先我们需要加辅助数据,在每一行数据前加上一行,如下图:

2我们从最后一行的上面那行到第一行按序号填充数据(注意每行填充的数据都是相同的序号),如部分所示:

3开始作图,选中数据表——插入——图表——散点图——气泡图:

直接生成的气泡图是这样的,很散乱,我们要对其进行调整

4调整:右击图表——选择数据——切换行列——确定

现在气泡是不是比较齐整了呢,但是还不够,接下来我们还要继续调整

5增加数据标签及调整图表表现形式:

去掉图表标题,增加数据标签,如图:

是不是发现展示的数据标签怎么变成了我们的辅助数据?是不是还发现了我们的辅助数据的作用呢?其实增加的辅助数据就是用来定位的^-^

接下来我们调整数据标签让他变成我们需要的表格的具体数据:

点击数据标签的右边的三角形,选择“更多选项”,进入设置数据标签格式选项卡:

在数据标签格式选项卡按图示步骤将Y值换为气泡大小就OK

喏,气泡数据已经变成我们需要的了

6下面要对图例跟坐标轴进行调整了:

右击图表——选择数据——选中序列1——编辑

序列名称和X轴坐标按标示选择:

将所有序列依次调整好,得到如下图所示结果:

这里坐标轴我们用不到,直接删除就好,但是在这之前我们需要调整一下网格线

右击Y轴,按图示 *** 作,这里我们把最大值改成你的序列个数加1 ,把主要单位改成1

然后按同样的步骤把X轴调整,之后删除两个坐标轴即可

是不是发现少了横坐标?这个目前我没找到好的解决办法只能用一种最笨的办法添加了

7添加横坐标

对,没错,我就是直接添加文本框的(羞涩脸^~^),你们要是有好的方法可以教教我鸭(可爱脸)

好了,气泡图的制作方法基本介绍完了,其实这个数据表用雷达图进行展示效果是更好的,但是这里仅仅只是借用这个数据表介绍一下气泡图的制作,不要那么纠结,当然这里大家也可以后续对表格进一步美化呀,比如这样

好了,今天就介绍到这里了,介绍的过程步骤有些繁琐,主要是为了给小白看的,大神不要嘲笑我哦(哭笑脸o(╥﹏╥)o)

也可以弄的需要你在VBE的工具箱上右键--添加控件,在附加控件框里面选择名称为:
Microsoft Office Chart 100或者Microsoft Office Chart 110的控件
若控件找不到可参考这个:
>

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13275572.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-06
下一篇 2023-07-06

发表评论

登录后才能评论

评论列表(0条)

保存