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

时间:2018-09-17 21:21:54

标签: python-2.7 xlsxwriter

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

这是我当前正在使用的代码(我想更改):

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

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

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

last_row_number是通过在工作表列中枚举而计算出的变量[<type 'int'>]。

先谢谢了。

1 个答案:

答案 0 :(得分:2)

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()的文档。