Как определить последнюю строку в xlsxwriter при использовании add_chart - PullRequest
0 голосов
/ 18 сентября 2018

Я запустил скрипт, чтобы взять строки и столбцы из листа и использовать его для создания диаграмм. Проблема, с которой я сталкиваюсь, состоит в том, что, поскольку строки в листе 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 голосов
/ 18 сентября 2018

Почти каждый интерфейс в 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().

...