# -*- 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使用VBA:Excel创建图表(转)的更多相关文章

  1. python模块介绍- xlwt 创建xls文件(excel)

    python模块介绍- xlwt 创建xls文件(excel) 2013-06-24磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq 37391319 ...

  2. 最全总结 | 聊聊 Python 办公自动化之 Excel(下)

    1. 前言 前面谈到 Python 处理 Excel 文件最常见的两种方式,即:xlrd/xlwt.openpyxl ​其中, xlrd/xlwt 这一组合,xlrd 可以负责读取数据,而 xlwt ...

  3. Python 操作 MS Excel 文件

    利用 Python 对 Excel 文件进行操作需要使用第三方库: openpyxl,可执行 pip install openpyxl 进行安装 1. 导入 openpyxl 模块 导入 openpy ...

  4. Excel催化剂图表系列之品味IBCS瀑布图观察企业利润构成

    IBCS图表,每个细节都值得反复琢磨参悟,此篇给大家送上详尽的瀑布图方式下的利润数据观察.请不要拿Excel2016版提供的瀑布图与IBCS版的瀑布图作对比,那完全不是一个级别的,可以类比为拿一辆经济 ...

  5. Excel催化剂图表系列之一键完成IBCS国际商业标准图表

    在数据分析领域,最后一公里的图表输出,是一片十分广阔的领域.一直以来,笔者深知不是这一方面的能手,学习上也仅仅是浅尝而止.没有往其深入研究并有所产出.很幸运地在数据圈子能够结识到其他的志同道合的伙伴, ...

  6. Python“文件操作”Excel篇(上)

    大家好,我们今天来一起探索一下用Python怎么操作Excel文件.与word文件的操作库python-docx类似,Python也有专门的库为Excel文件的操作提供支持,这些库包括xlrd.xlw ...

  7. 最全总结 | 聊聊 Python 办公自动化之 Excel(中)

    1. 前言 上一篇文章中,我们聊到使用 xlrd.xlwt.xlutils 这一组合操作 Excel 的方法 最全总结 | 聊聊 Python 办公自动化之 Excel(上) ​本篇文章将继续聊另外一 ...

  8. [转] C#操作EXCEL,生成图表的全面应用

    gailzhao 原文 关于C#操作EXCEL,生成图表的全面应用 近来我在开发一个运用C#生成EXCEL文档的程序,其中要根据数据生成相应的图表,该图表对颜色和格式都有严格的要求,在百度和谷歌中搜索 ...

  9. C# 添加、修改以及删除Excel迷你图表的方法

    Excel表格中的迷你图表能够直观地向我们展示出数据的变化趋势.本文将介绍C#如何实现为表格数据生成迷你图表,以及修改和删除迷你图表的方法.下面将详细讲述. 所用组件工具:Spire.XLS for ...

随机推荐

  1. 51Testing招聘软件测试课程研发人员

    最近有些两三年测试工作经验的小伙伴对自己的下一个工作有些迷茫,感觉很难有技术的突破,毕竟公司不是学校,不会允许员工海阔天空的去尝试各种新的技术.现在我就送给这些好学上进的小伙伴一个礼物,51Testi ...

  2. [JIT_APP]Java基础知识总结

    一.Java语言的基础知识 1. 开发Java语言的公司 美国Sun(Sum Microsystems)公司开发.   2.Java的3个版本 J2SE(Java2 Standard Edition) ...

  3. hdoj 2899 Strange fuction【二分求解方程】

    Strange fuction Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)T ...

  4. select、poll、epoll三组IO复用

    int select(int nfds,fd_set* readfds,fd_set* writefds,fd_set* exceptfds,struct timeval* timeout)//其中n ...

  5. HTML5 Security Cheatsheet使用说明

    1.URL: https://html5sec.org/ 2.通过点击如图button(也可点击其他:xss firefox)那行的button可以搜索所有button的Cheatsheet,查看都有 ...

  6. 推荐一个网站——聚合了微软的文件的Knowledge Base下载地址

    Microsoft Files是一个微软的文件数据库,从这里可以很方便的找到各个文件版本对应的下载链接. 比如今天debug需要找一个特定版本的sos.dll,从这个网站就很方便的给出了这个sos.d ...

  7. WebKit历史项管理的实现

    历史项管理依据标准定义,由Page管理一个Joint Session History, 包括了各个子Frame的历史项.逻辑上相应例如以下的关系: 从上面看三个层次:Page,Frame,以及JS B ...

  8. FreeMarker 自己定义指令(三)

    1. 模板文件 test04.ftl foo <@customUpper> bar f <#-- 这里同意使用全部的 FTL --> <#list ["red& ...

  9. 淘宝分布式数据层:TDDL[转]

    淘宝根据自己的业务特点开发了TDDL(Taobao Distributed Data Layer 外号:头都大了 ©_Ob)框架,主要解决了分库分表对应用的透明化以及异构数据库之间的数据复制,它是一个 ...

  10. spin_lock &amp; mutex_lock的差别?

    本文由该问题引入到内核锁的讨论,归纳例如以下 为什么须要内核锁? 多核处理器下,会存在多个进程处于内核态的情况,而在内核态下,进程是能够訪问全部内核数据的,因此要对共享数据进行保护,即相互排斥处理 有 ...