使用 add_chart 时如何在 xlsxwriter 中定义最后一行

How to define last row in xlsxwriter while using add_chart

我 运行 一个脚本,用于从作品中获取行和列 sheet 并使用它来制作图表。我 运行 遇到的问题是,由于 MSEXCEL sheet 中的行正在更改,我想在 add_series 参数中添加最后一行,以便它始终采用限制从第 2 行到最后一行的图表数据。

这是我目前使用的(我想更改的)代码:

chart1 = workbook.add_chart({'type': 'column'})
chart1.add_series({
    'values': "='Sheet1'!$B:$B6",
    'categories': "='Sheet1'!$A:$A6",
    'data_labels': {'value': False, 'categories': False, 'series': False}
})

我已经将上面的代码修改为如下,但是现在图表没有得到任何数据。

chart1 = workbook.add_chart({'type': 'column'})
chart1.add_series({
    'values': "='Sheet1'!$B:($B$ + str(last_row_number + 1)",
    'categories': "='Sheet1'!$A:($A$ + str(last_row_number + 1)",
    'data_labels': {'value': False, 'categories': True, 'series': False}

last_row_number 在这种情况下是一个变量 [<type 'int'>] 通过枚举计算 worksheet 列。

提前致谢。

几乎 XlsxWriter 中的每个界面都支持 (row, col) 符号以及 A1 范围符号。

add_series() 的情况下,您可以使用 [sheetname, first_row, first_col, last_row, last_col]:

这样的列表
chart.add_series({
    'categories': ['Sheet1', 1, 0, 125, 0],
    'values':     ['Sheet1', 1, 1, 125, 1],
    # ...
})

# Or:

last_row = 125

chart.add_series({
    'categories': ['Sheet1', 1, 0, last_row, 0],
    'values':     ['Sheet1', 1, 1, last_row, 1],
    # ...
})

请参阅 add_series() 的文档。