打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
使用 Python 代码结合 VBA创建线柱组合图表
userphoto

2024.01.03 四川

关注

使用 Python 代码结合 VBA 除了能创建基础图表外,还可以创建组合图表,如线柱组合图。

下面以图 9-4 所示的数据源为例,介绍如何通过代码在 D7 单元格位置创建宽 450 磅、高 300 磅的线柱组合图表。 

代码解析
第 1 行代码导入 os 库,用于后续处理路径。
第 2 行代码导入 xlwings 库,并起别名为 xw。
第 3~4 行代码从 xlwings 库中导入常量 AxisType 和 AxisGroup,用于后续设置图表上的坐标轴属性;导入常量 ChartType,用于后续设置图表类型;导入常量 MarkerStyle,用于后续设置数据系列的数据标志样式。
第 6 行代码使用 os.path 模块的 dirname 函数获取 Python 文件所在目录,其中 __file__ 属性返回Python 文件的全路径。
第 7 行代码使用 os.path 模块的 join 函数拼接目录名和文件名获取示例 Excel 文件的全路径。
第 8 行代码使用 xw.Book 打开示例 Excel 文件获取工作簿对象,并赋值给变量 wb。
第 9 行代码使用工作簿对象 wb 的 sheets 属性获取名为“Sheet1”的工作表,并赋值给变量sheet。
第 10 行代码获取 D7 单元格,用来作为图表的锚点。
第 11 行代码中的 sheet.charts 返回 Charts 对象,调用该对象的 add 方法在当前工作表中添加图表,并返回 Chart 对象赋值给变量 chart。该图表的左上角坐标点即为 D1 单元格的坐标,宽和长分别为 450和 300。
第 12 行代码指定工作表的 A1:C6 单元格区域作为图表数据源。
第 13 行代码设置图表类型为簇状柱形图。
第 14 行代码获取 VBA Chart 对象,由于 xlwings 提供的 Chart 对象不支持设置数值轴、数据系列等,需要借助 VBA 的能力来实现。
第 15~16 行代码设置图表有可见标题和标题文本。
第 17~23 行代码设置主数值轴相关属性。
第 17~18 行代码引用 VBA Chart 对象的主数值轴,其 Axes 方法返回代表图表上单个坐标轴或坐标轴集合的对象,语法格式如下。 

 
第 19~20 行代码设置数值轴的最大值和最小值分别为 1000 和 0。
第 21 行代码设置数值轴的刻度单位为 100。
第 22~23 行代码设置显示坐标轴标题及设置标题文本。
第 24 行代码引用 VBA Chart 对象的第 2 个数据系列,其 SeriesCollection 方法返回图表中指定索引的数据系列 SeriesCollection 对象,语法格式如下。 

参数 Index 是可选的,用于指定数据系列的名称或索引。
第 25 行代码设置数据系列的图表类型为带数据标识的折线图。
第 26 行代码设置数据系列的 AxisGroup 属性为 AxisGroup.xlSecondary,表示将数据系列绘制在次坐标轴上。AxisGroup 属性值可为表 9-5 列举的 AxisGroup 常量之一。
第 27 行代码设置数据系列的 MarkerStyle 属性为 MarkerStyle.xlMarkerStyleCircle,表示将数据系列的数据标志样式设置为圆形标记。MarkerSytle 属性可使用表 9-6 列举的 MarkerStyle 常量。 

第 28 行代码设置数据标志的大小为 5,单位为磅。MarkerSize 属性的取值范围为 2~72 的整数。
第 29~34 行代码设置次数值轴相关属性。
第 29~30 行代码引用 VBA Chart 对象的次数值轴。
第 31~32 行代码设置数值轴的最大值和最小值分别为 1 和 0。
第 33~34 行代码设置显示坐标轴标题及设置标题文本。
第 35~36 行使用 VBA Chart 对象的 SetElement 方法设置图表中的图表元素,该方法可以完成Excel 中【布局】选项卡的部分功能。SetElement 方法的语法格式如下。 

好书推荐

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
VBA常用代码解析(第十四讲)
VBA代码之三十五:使用VBA代码自动生成图表(二)
办公小技巧:光标过处 图表交互
EXCEL图表格式设置详解
我花了20分钟,琢磨出的Excel图表,有点意思
VBA-处理图形图表大全剖析8
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服