Есть ли способ создать диаграмму в XlsxWriter без записи данных в ячейки листа? IE. Из массива в скрипте python? - PullRequest
2 голосов
/ 14 июня 2019

Моя цель - создать диаграмму на листе из XlsxWriter, не располагая данными с диаграммы в любом месте листа (я не хочу ссылаться на ячейки).По юридическим причинам данные не могут быть доступны в книге.

В качестве альтернативы, если есть способ записать данные в ячейки, отобразить эти данные, а затем удалить ссылки на ячейки, чтобы у меня был график, который нессылаясь на ячейки, я был бы открыт к этому также.Я знаю, что есть несколько способов сделать это в Excel.

Я попытался заменить аргументы «категорий» и «значений» списками целых чисел (данные, которые я хочу получить), но я получаю ошибку из-за отсутствияссылки на ячейки.(См. Функцию ниже).

# Builds a chart with top left corner at row_start, col_start (zero 
# indexed).

# data[data_input[i][0]]['history'][0] is a list of dates.
# data[data_input[i][0]]['history'][1] is a list of values for those dates.

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

for i in range(len(data_input)):
    chart.add_series({
        'name':       title,
        'categories': data[data_input[i][0]]['history'][0],
        'values':     data[data_input[i][0]]['history'][1],
        'line':       {'color': colors[i], 'width': 1}
    })

worksheet.insert_chart(row_start, col_start, chart)

TypeError: xl_range_formula () принимает 5 позиционных аргументов, но 261 было дано

1 Ответ

1 голос
/ 14 июня 2019

Моя цель - создать диаграмму на листе из XlsxWriter, не располагая данными с диаграммы в любом месте листа.По юридическим причинам данные не могут быть доступны в книге.

Это невозможно.

В Excel можно построить график из данных, которые вы вводите непосредственно в диалоговом окне данных, без ссылки на ячейки.Однако этот параметр не поддерживается XlsxWriter, и он также никоим образом не скрывает ваши данные, поскольку любой может войти в диалоговое окно и просмотреть данные.Кроме того, любой может разархивировать файл и просмотреть данные.

Кроме того, любой может навести курсор мыши на данные в диаграмме и посмотреть значения, из которых они получены.

В качестве альтернативы,если есть способ записи данных в ячейки, отобразите эти данные на график, а затем удалите ссылки на ячейки, чтобы у меня был график, который не ссылается на ячейки,

Нет, по тем же причинам, что и выше.

Сделайте шаг назад и попытайтесь выяснить, возможно ли каким-либо образом выполнить то, что вы хотите, только в Excel (возможно, путем скрытия листа с исходными данными, а затем блокировки и защиты файла паролем).Если есть способ сделать это в Excel, то вы знаете вопрос, чтобы спросить о том, как это сделать в Python.

В качестве рекомендации, один из способов сделать это может быть создание изображения диаграммы ивставить это в Excel.Таким образом, нет ссылки на исходные данные.

...