• Excel 二次开发系列(7):报表服务基础


    Excel 二次开发系列 C#

    生成报表一般有几个步骤:

    1 选定一个 Excel表。 生成一个统计图像。

    2 设定数据来源。

    3 生成chart

    4 设置名称,样式,格式,颜色等。

    这一节主要介绍几个重要的方法和几个重要的属性:

     

    //  生成一个统计图对象:

    Excel.Chart xlChart = (Excel.Chart)ThisWorkbook.Charts.

                         Add(Type.Missing, xlSheet, Type.Missing, Type.Missing);

    workbook 里面添加一个 chart对象。

    //设定数据来源:

                Excel.Range cellRange = (Excel.Range)xlSheet.Cells[1, 1];

    设置的是第1row 和第1columns.

    //通过向导生成Chart

    xlChart.ChartWizard(cellRange.CurrentRegion,

            Excel.XlChartType.xl3DColumn, Type.Missing,

            Excel.XlRowCol.xlColumns, 1, 0, true,

            "访问量比较(http://www.cnblogs.com/tomin)", "月份", "访问量","");

    在下面就是chart类中的创建图像的一个方法:

    Public void ChartWizard (

        Object Source,

        Object Gallery,

        Object Format,

        Object PlotBy,

        Object CategoryLabels,

        Object SeriesLabels,

        Object HasLegend,

        Object Title,

        Object CategoryTitle,

        Object ValueTitle,

        Object ExtraTitle

    )

    参数

    Source

    类型:System..::.Object

    包含新图表的源数据的范围。如果省略此参数,则 Microsoft Office Excel 编辑活动图表工作表或在活动工作表上选择的 Chart 控件。

    Gallery

    类型:System..::.Object

    XlChartType。图表类型。

    Format

    类型:System..::.Object

    内置自动套用格式的选项编号。可以是一个 1 10 之间的数(取决于库类型)。如果省略此参数,则 Excel 根据库类型和数据源选择默认值。

    PlotBy

    类型:System..::.Object

    指定每个系列的数据是按行绘制还是按列绘制。可以为以下 XlRowCol 常数之一:xlRows xlColumns

    CategoryLabels

    类型:System..::.Object

    一个整数,指定源范围中包含类别标签的行数或列数。合法值是从 0(零)到相应类别或系列的最大数减一。

    SeriesLabels

    类型:System..::.Object

    一个整数,指定源范围中包含系列标签的行数或列数。合法值是从 0(零)到相应类别或系列的最大数减一。

    HasLegend

    类型:System..::.Object

    true 时包含图例。

    Title

    类型:System..::.Object

    Chart 控件标题文本。

    CategoryTitle

    类型:System..::.Object

    分类轴标题文本。

    ValueTitle

    类型:System..::.Object

    数值轴标题文本

    ExtraTitle

    类型:System..::.Object

    三维图表的系列轴标题或二维图表的第二个数值轴标题。

    注:

    source,一般用Rang的当前区域。例如cellRange.CurrentRegion

    Gallery , XlChartType。图表类型。 是一个枚举类型。常用的有如下

    public enum XlChartType  (常用的)  

    Member name

    Description

    xl3DArea

    3D Area

    xl3DColumn

    3D Column

    xl3DColumnClustered

    3D Clustered Column

    xl3DColumnStacked

    3D Stacked Column

    xl3DColumnStacked100

    3D 100% Stacked Column

    xl3DLine

    3D Line

    xl3DPie

    3D Pie

    xl3DPieExploded

    Exploded 3D Pie

    xlColumnClustered

    Clustered Column

    xlConeBarClustered

    Clustered Cone Bar

    xlConeBarStacked

    Stacked Cone Bar

    xlConeBarStacked100

    100% Stacked Cone Bar

    xlConeCol

    3D Cone Column

    xlLine

    Line

    xlLineMarkers

    Line with Markers

    xlLineMarkersStacked

    Stacked Line with Markers

    xlLineMarkersStacked100

    100% Stacked Line with Markers

    xlLineStacked

    Stacked Line

    xlLineStacked100

    100% Stacked Line

    xlPie

    Pie

    xlRadarMarkers

    Radar with Data Markers

    xlStockVOHLC

    Volume-Open-High-Low-Close

    xlXYScatterLines

    Scatter with Lines.

    xlXYScatterLinesNoMarkers

    Scatter with Lines and No Data Markers

    xlXYScatterSmooth

    Scatter with Smoothed Lines

    xlXYScatterSmoothNoMarkers

    Scatter with Smoothed Lines and No Data Markers

     

    设置统计图Sheet的名称:*/

                xlChart.Name = "统计";

                //现在的统计图只有一个组,他们会显示成一样的颜色,我们来让12Bar都显示不同的颜色:

                Excel.ChartGroup grp = (Excel.ChartGroup)xlChart.ChartGroups(1);

                grp.GapWidth = 20;

                grp.VaryByCategories = true;

                //现在Chart的条目的显示形状是Box,我们让它们变成圆柱形,并给它们显示加上数据标签:

                Excel.Series s = (Excel.Series)grp.SeriesCollection(1);

                s.BarShape = XlBarShape.xlCylinder;

                s.HasDataLabels = true;

                //下面再来设置统计图的标题和图例的显示:

                xlChart.Legend.Position = XlLegendPosition.xlLegendPositionTop;

                xlChart.ChartTitle.Font.Size = 24;

                xlChart.ChartTitle.Shadow = true;

                xlChart.ChartTitle.Border.LineStyle = Excel.XlLineStyle.xlContinuous;

                //最后设置两个轴的属性,Excel.XlAxisType.xlValue对应的是Y轴,Excel.XlAxisType.xlCategory对应的是X轴:

                Excel.Axis valueAxis = (Excel.Axis)xlChart.Axes(Excel.XlAxisType.xlValue, XlAxisGroup.xlPrimary);

                valueAxis.AxisTitle.Orientation = -90;

                Excel.Axis categoryAxis = (Excel.Axis)xlChart.Axes(Excel.XlAxisType.xlCategory, XlAxisGroup.xlPrimary);

                categoryAxis.AxisTitle.Font.Name = "MS UI Gothic"; 

  • 相关阅读:
    守护进程的创建(syslog函数)
    进程控制fork vfork,父子进程,vfork保证子进程先运行
    进程概述,父子进程
    gdb调试分析多线程死锁
    tcp握手
    实现自己的ls命令
    获取当前目录getcwd,设置工作目录chdir,获取目录信息
    目录的创建,删除,获取当前目录
    文件的移动,删除 rename remove unlink 函数
    sendkeys
  • 原文地址:https://www.cnblogs.com/tomin/p/Excel_second_develepment_serise7.html
Copyright © 2020-2023  润新知