使用 Excel 中的 xlsxwriter 创建图表,该图表不随 Python 中的单元格移动或调整大小

Create chart using xlsxwriter in Excel that does not move or size with cells in Python

目标

我想使用 Python 中的 xlsxwriter 创建一个图表,在将图表插入工作表时,通过让 xlsxwriter select "Don't move or size with cells" 的选项不随单元格移动或调整大小.

Excel 中的选项位于: 格式化图表区 图表选项 尺寸和特性 特性 不要移动或调整单元格大小

默认情况下,当使用 xlsxwriter 创建图表时,选项 "Move and size with cells" 是 selected。

但是,这在过滤数据时会出现问题。如果图表上方的数据被隐藏或过滤,图表将消失或调整大小。

帮助文档

我阅读了说明如何在图像上执行此操作的帮助文档,它们表明这同样适用于图表。但是,我无法让它工作。帮助文档 link: https://xlsxwriter.readthedocs.io/working_with_object_positioning.html

最少的可重现代码

chart = workbook.add_chart({'type': 'line'})

chart.add_series({

    'name':       [sheet_name, name_row, name_col],

    'categories': [sheet_name, first_row, x_data_col, max_row, x_data_col],

    'values':     [sheet_name, first_row, col, max_row, col],
})


worksheet.insert_chart(position, chart, {'object_position': 3})

问题

图表仍在正确创建,但 object_position 未设置为 3。出于某种原因,正在创建的图表仍然能够随单元格移动和调整大小,这与 object_position 1. 我是否试图错误地设置 object_position 参数?

添加此功能时,您需要确保使用的 XlsxWriter 版本 >= 1.1.7。

之后它应该可以工作了:

import xlsxwriter

workbook = xlsxwriter.Workbook('chart.xlsx')
worksheet = workbook.add_worksheet()

chart = workbook.add_chart({'type': 'line'})

worksheet.write_column('A1', [2, 4, 6, 8, 10])

chart.add_series({'values': '=Sheet1!$A:$A'})

worksheet.insert_chart('A7', chart, {'object_position': 3})

workbook.close()

输出是选项 3 "Don’t move or size with cells":