zoukankan      html  css  js  c++  java
  • python使用VBA:Excel创建图表(转)

    # -*- coding: utf-8 -*-

    """

    Created on Thu Mar 06 11:22:03 2014

    @author: Administrator

    """

    import win32com.client

    from win32com.gen_py import msof,mspp,msxl

    from string import uppercase

    from pandas import Series

    #%% 将常量发布到全局命名空间中去

    g = globals()

    for c in dir(msof.constants) : g[c] = getattr(msof.constants, c)

    for c in dir(mspp.constants) : g[c] = getattr(mspp.constants, c)

    for c in dir(msxl.constants) : g[c] = getattr(msxl.constants, c)

    #%% 生成行名和坐标的对应关系表

    luc = list(uppercase)

    columns = Series((luc + [i+j for i in luc for j in luc])[:256],range(1,257))

    def cellName(nRow,nCol):

    return columns[nCol]+str(nRow)

    #%% 打开一个测试文件

    application = win32com.client.Dispatch('Excel.Application')

    application.Visible = True

    workbook = application.Workbooks.Open(r'c:sample1.xls')

    sheets = workbook.Sheets

    sheet1 = sheets.Item(1)

    #%% 获取数据范围

    nRow = sheet1.UsedRange.Rows.Count

    nCol = sheet1.UsedRange.Columns.Count

    rangeName = cellName(1,1) + ':' + cellName(nRow,nCol)

    rangeName

    #%% 创建图表

    chart = workbook.Charts.Add()

    chart.ChartType = xlLine

    chart.SetSourceData(sheet1.Range(rangeName))

    # 遍历所有系列

    seriesCollection = chart.SeriesCollection()

    seriesCollection.Count

    for i in seriesCollection:

    print(i)

    # 参考http://peltiertech.com/Excel/ChartsHowTo/QuickChartVBA.html

    #%% 图表类型说明

    ChartType = {'xlLine':'折线图',

    'xlLineMarkersStacked':'堆积数据点折线图',

    'xlLineStacked':'堆积折线图',

    'xlPie':'饼图',

    'xlPieOfPie':'复合饼图',

    'xlPyramidBarStacked':'堆积条形棱锥图',

    'xlPyramidCol':'三维柱形棱锥图',

    'xlPyramidColClustered':'簇状柱形棱锥图',

    'xlPyramidColStacked':'堆积柱形棱锥图',

    'xlPyramidColStacked100':'百分比堆积柱形棱锥图',

    'xlRadar':'雷达图',

    'xlRadarFilled':'填充雷达图',

    'xlRadarMarkers':'数据点雷达图',

    'xlStockHLC':'盘高-盘低-收盘图',

    'xlStockOHLC':'开盘-盘高-盘低-收盘图',

    'xlStockVHLC':'成交量-盘高-盘低-收盘图',

    'xlStockVOHLC':'成交量-开盘-盘高-盘低-收盘图',

    'xlSurface':'三维曲面图',

    'xlSurfaceTopView':'曲面图(俯视图)',

    'xlSurfaceTopViewWireframe':'曲面图(俯视框架图)',

    'xlSurfaceWireframe':'三维曲面图(框架图)',

    'xlXYScatter':'散点图',

    'xlXYScatterLines':'折线散点图',

    'xlXYScatterLinesNoMarkers':'无数据点折线散点图',

    'xlXYScatterSmooth':'平滑线散点图',

    'xlXYScatterSmoothNoMarkers':'无数据点平滑线散点图',

    'xl3DArea':'三维面积图',

    'xl3DAreaStacked':'三维堆积面积图',

    'xl3DAreaStacked100':'百分比堆积面积图',

    'xl3DBarClustered':'三维簇状条形图',

    'xl3DBarStacked':'三维堆积条形图',

    'xl3DBarStacked100':'三维百分比堆积条形图',

    'xl3DColumn':'三维柱形图',

    'xl3DColumnClustered':'三维簇状柱形图',

    'xl3DColumnStacked':'三维堆积柱形图',

    'xl3DColumnStacked100':'三维百分比堆积柱形图',

    'xl3DLine':'三维折线图',

    'xl3DPie':'三维饼图',

    'xl3DPieExploded':'分离型三维饼图',

    'xlArea':'面积图',

    'xlAreaStacked':'堆积面积图',

    'xlAreaStacked100':'百分比堆积面积图',

    'xlBarClustered':'簇状条形图',

    'xlBarOfPie':'复合条饼图',

    'xlBarStacked':'堆积条形图',

    'xlBarStacked100':'百分比堆积条形图',

    'xlBubble':'气泡图',

    'xlBubble3DEffect':'三维气泡图',

    'xlColumnClustered':'簇状柱形图',

    'xlColumnStacked':'堆积柱形图',

    'xlColumnStacked100':'百分比堆积柱形图',

    'xlConeBarClustered':'簇状条形圆锥图',

    'xlConeBarStacked':'堆积条形圆锥图',

    'xlConeBarStacked100':'百分比堆积条形圆锥图',

    'xlConeCol':'三维柱形圆锥图',

    'xlConeColClustered':'簇状柱形圆锥图',

    'xlConeColStacked':'堆积柱形圆锥图',

    'xlConeColStacked100':'百分比堆积柱形圆锥图',

    'xlCylinderBarClustered':'簇状条形圆柱图',

    'xlCylinderBarStacked':'堆积条形圆柱图',

    'xlCylinderBarStacked100':'百分比堆积条形圆柱图',

    'xlCylinderCol':'三维柱形圆柱图',

    'xlCylinderColClustered':'簇状柱形圆锥图',

    'xlCylinderColStacked':'堆积柱形圆锥图',

    'xlCylinderColStacked100':'百分比堆积柱形圆柱图',

    'xlDoughnut':'圆环图',

    'xlDoughnutExploded':'分离型圆环图',

    'xlLineMarkers':'数据点折线图',

    'xlLineMarkersStacked100':'百分比堆积数据点折线图',

    'xlLineStacked100':'百分比堆积折线图',

    'xlPieExploded':'分离型饼图',

    'xlPyramidBarClustered':'簇状条形棱锥图',

    'xlPyramidBarStacked100':'百分比堆积条形棱锥图'}

  • 相关阅读:
    常见的数据交互之跳转页面传值
    一起学Python:正则表达式概述
    一起学Python:正则表达式概述
    一起学Python:网络通信过程
    一起学Python:网络通信过程
    Web静态服务器
    Web静态服务器
    一起学Python:协程
    洛谷P2868
    P1137 旅行计划
  • 原文地址:https://www.cnblogs.com/luhouxiang/p/5179105.html
Copyright © 2011-2022 走看看