您的位置:首页 > 编程语言 > C语言/C++

Visual C++ 6.0 操作excel2003进行图表绘制

2015-04-04 13:27 211 查看

Visual C++ 6.0 操作excel2003进行图表绘制

在实现对excel2003进行读写的基础之上,可以实现excel图表的绘制。

1.  在excel.h和excel.cpp添加_Chart、ChartObjects、Charts类

2.  绘制图表

    

Cpp代码  


_Chart          chart;  
ChartObjects    chartobjects;  
Charts          charts;  
LPDISPATCH      lpDisp;  
......  
long left, top, width, height;  
left = 100;  
top = 10;  
width = 350;  
height = 250;  
      
lpDisp = sheet.ChartObjects(covOptional);  
ASSERT(lpDisp);  
chartobjects.AttachDispatch(lpDisp); // Attach the lpDisp pointer  
// for ChartObjects to the chartobjects  
// object.  
ChartObject chartobject = chartobjects.Add(left, top, width, height);   
//defines the rectangle,   
// adds a new chart at that rectangle and   
// assigns its object reference to a   
// ChartObject variable named chartobject  
chart.AttachDispatch(chartobject.GetChart()); // GetChart() returns  
// LPDISPATCH, and this attaches   
// it to your chart object.  
      
lpDisp = sheet.GetRange(COleVariant("A2"), COleVariant("B200"));  
// The range containing the data to be charted.  
ASSERT(lpDisp);  
range.AttachDispatch(lpDisp);  
      
VARIANT var; // ChartWizard needs a Variant for the Source range.  
var.vt = VT_DISPATCH; // .vt is the usable member of the tagVARIANT  
// Struct. Its value is a union of options.  
var.pdispVal = lpDisp; // Assign IDispatch pointer  
// of the Source range to var.  
  
chart.ChartWizard(var,                    // Source.  
    COleVariant((short)11),  // Gallery: 3d Column.  
    covOptional,             // Format, use default.  
    COleVariant((short)1),   // PlotBy: xlRows.  
    COleVariant((short)0),   // CategoryLabels.  
    COleVariant((short)1),   // SeriesLabels.  
    COleVariant((short)TRUE),  // HasLegend.  
    COleVariant("Use by Month"),  // Title.  
    COleVariant("Month"),    // CategoryTitle.  
    COleVariant("Usage in Thousands"),  // ValueTitles.  
    covOptional              // ExtraTitle.  
);  

   即可实现图表绘制。

3.  可加入图表类型常量

Cpp代码  


typedef enum XlChartType   
{   
    xlColumnClustered = 51,   
    xlColumnStacked = 52,   
    xlColumnStacked100 = 53,   
    xl3DColumnClustered = 54,   
    xl3DColumnStacked = 55,   
    xl3DColumnStacked100 = 56,   
    xlBarClustered = 57,   
    xlBarStacked = 58,   
    xlBarStacked100 = 59,   
    xl3DBarClustered = 60,   
    xl3DBarStacked = 61,   
    xl3DBarStacked100 = 62,   
    xlLineStacked = 63,   
    xlLineStacked100 = 64,   
    xlLineMarkers = 65,   
    xlLineMarkersStacked = 66,   
    xlLineMarkersStacked100 = 67,   
    xlPieOfPie = 68,   
    xlPieExploded = 69,   
    xl3DPieExploded = 70,   
    xlBarOfPie = 71,   
    xlXYScatterSmooth = 72,   
    xlXYScatterSmoothNoMarkers = 73,   
    xlXYScatterLines = 74,   
    xlXYScatterLinesNoMarkers = 75,   
    xlAreaStacked = 76,   
    xlAreaStacked100 = 77,   
    xl3DAreaStacked = 78,   
    xl3DAreaStacked100 = 79,   
    xlDoughnutExploded = 80,   
    xlRadarMarkers = 81,   
    xlRadarFilled = 82,   
    xlSurface = 83,   
    xlSurfaceWireframe = 84,   
    xlSurfaceTopView = 85,   
    xlSurfaceTopViewWireframe = 86,   
    xlBubble = 15,   
    xlBubble3DEffect = 87,   
    xlStockHLC = 88,   
    xlStockOHLC = 89,   
    xlStockVHLC = 90,   
    xlStockVOHLC = 91,   
    xlCylinderColClustered = 92,   
    xlCylinderColStacked = 93,   
    xlCylinderColStacked100 = 94,   
    xlCylinderBarClustered = 95,   
    xlCylinderBarStacked = 96,   
    xlCylinderBarStacked100 = 97,   
    xlCylinderCol = 98,   
    xlConeColClustered = 99,   
    xlConeColStacked = 100,   
    xlConeColStacked100 = 101,   
    xlConeBarClustered = 102,   
    xlConeBarStacked = 103,   
    xlConeBarStacked100 = 104,   
    xlConeCol = 105,   
    xlPyramidColClustered = 106,   
    xlPyramidColStacked = 107,   
    xlPyramidColStacked100 = 108,   
    xlPyramidBarClustered = 109,   
    xlPyramidBarStacked = 110,   
    xlPyramidBarStacked100 = 111,   
    xlPyramidCol = 112,   
    xl3DColumn = 0xFFFFEFFC,   
    xlLine = 4,   
    xl3DLine = 0xFFFFEFFB,   
    xl3DPie = 0xFFFFEFFA,   
    xlPie = 5,   
    xlXYScatter = 0xFFFFEFB7,   
    xl3DArea = 0xFFFFEFFE,   
    xlArea = 1,   
    xlDoughnut = 0xFFFFEFE8,   
    xlRadar = 0xFFFFEFC9   
} XlChartType;   

   各类型的具体说明为:

图表类型 说明 常量

柱形图  簇状 xlColumnClustered

三维簇状柱形图 xl3DColumnClustered

堆积柱形图 xlColumnStacked

三维堆积柱形图 xl3DColumnStacked

百分比堆积柱形图 xlColumnStacked100

三维百分比堆积柱形图 xl3DColumnStacked100

三维柱形图 xl3DColumn簇状

条形图  簇状条形图 xlBarClustered

三维簇状条形图 xl3DBarClustered

堆积条形图 xlBarStacked

三维堆积条形图 xl3DBarStacked

百分比堆积条形图 xlBarStacked100

三维百分比堆积条形图 xl3DBarStacked100

折线图  折线图 xlLine

数据点折线图 xlLineMarkers

堆积折线图 xlLineStacked

堆积数据点折线图 xlLineMarkersStacked

百分比堆积折线图 xlLineStacked100

百分比堆积数据点折线图 xlLIneMarkersStacked100

折线图三维折线图 xl3DLine

饼图  饼图 xlPie

分离型饼图 xlPieExploded

三维饼图 xl3Dpie

三维分离型饼图 xl3DPieExploded

复合饼图 xlPieOfPie

饼图复合柱饼图 xlBarOfPie

XY (散点图)  散点图 xlXYScatter

平滑线散点图 xlXYScatterSmooth

无数据点折线散点图 xlXYScatterLinesNoMarkers

折线散点图 xlXYScatterLines

无数据点折线散点图 xlXYScatterLinesNoMarkers

气泡图 气泡图 xlBubble

三维气泡图 xlBubble3DEffect

面积图  面积图 xlArea

三维面积图 xl3DArea

堆积面积图 xlAreaStacked

三维堆积面积图 xl3DAreaStacked

百分比堆积面积图 xlAreaStacked100

三维百分比堆积面积图 xl3DAreaStacked100

圆环图  圆环图 xlDoughnut

分离型圆环图 xlDoughnutExploded

雷达图  雷达图 xlRadar

数据点雷达图 xlRadarMarkers

填充雷达图 xlRadarFilled

曲面图  三维曲面图 xlSurface

曲面图(俯视图) xlSurfaceTopView

三维曲面图(框架图) xlSurfaceWireframe

曲面图(俯视框架图) xlSurfaceTopViewWireframe

股价图  盘高-盘低-收盘图 xlStockHLC

成交量-盘高-盘低-收盘图 xlStockVHLC

开盘-盘高-盘低-收盘图 xlStockOHLC

成交量-开盘-盘高-盘低-收盘图 xlStockVOHLC

圆柱图  簇状柱形圆柱图 xlCylinderColClustered

簇状条形圆柱图 xlCylinderBarClustered

堆积柱形圆柱图 xlCylinderColStacked

堆积条形圆柱图 xlCylinderBarStacked

百分比堆积柱形圆柱图 xlCylinderColStacked100

百分比堆积条形圆柱图 xlCylinderBarStacked100

三维柱形圆柱图 xlCylinderCol

圆锥图  簇状柱形圆锥图 xlConeColClustered

簇状条形圆锥图 xlConeBarClustered

堆积柱形圆锥图 xlConeColStacked

堆积条形圆锥图 xlConeBarStacked

百分比堆积柱形圆锥图 xlConeColStacked100

百分比堆积条形圆锥图 xlConeBarStacked100

三维柱形圆锥图 xlConeCol

棱锥图  簇状柱形棱锥图 xlPyramidColClustered

簇状条形棱锥图 xlPyramidBarClustered

堆积柱形棱锥图 xlPyramidColStacked

堆积条形棱锥图 xlPyramidBarStacked

百分比堆积柱形棱锥图 xlPyramidColStacked100

百分比堆积条形棱锥图 xlPyramidBarStacked100

三维柱形棱锥图 xlPyramidCol
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: