Как разместить диаграмму в рабочей книге

Я запускаю python2.7 и использую openpyxl версии 1.8.6. Я могу создать диаграмму просто отлично, но я не могу найти что-либо, что указывает на то, что диаграмма может быть размещена в определенном месте на листе. Любая помощь будет оценена.

Для генерации диаграммы я использую следующий код:

ws = wb2.get_sheet_by_name('Traffic Data') rowcount = ws.get_highest_row() values = Reference(ws,(1,1), (rowcount - 1,1)) labels = Reference(ws,(0,1),(rowcount,0)) title = "Events recorded in " + str(datetime.datetime.strptime(str(runmonth), '%m').strftime('%B')) series = Series(values, title=title) chart.add_series(series) ws = wb2.get_sheet_by_name('Traffic Incidents') ws.add_chart(chart) 

Согласно исходному коду невозможно установить точное местоположение диаграммы при добавлении его на рабочий лист с помощью add_chart() .

Рассмотрим переход на модуль xlsxwriter . Цитата из работы с диаграммами :

 # Create a new chart object. chart = workbook.add_chart({'type': 'line'}) # Add a series to the chart. chart.add_series({'values': '=Sheet1!$A$1:$A$6'}) # Insert the chart into the worksheet. worksheet.insert_chart('C1', chart) 

На самом деле очень сложно установить положение любого объекта в Excel, потому что в нем используется абсурдно глупая система для ширины ячеек: они основаны на ширине числа символов в определенном шрифте и размере плюс некоторые дополнения. С другой стороны, диаграммы должны располагаться с использованием пикселей. У нас есть метод point_pos() в point_pos() но я бы не доверял ему. Мы только что выпустили 2.0, который имеет более чистый код. В основном вы можете играть с атрибутами chart.drawing чтобы получить их там, где вам нужно, в каком размере.

Посмотрите на код в chart / chart.py для получения дополнительной информации. Следующий выпуск должен быть немного более удобным.

Мне удалось компенсировать позицию графика, используя chart.drawing. В частности, я использовал:

chart.drawing.left = 1000

Это компенсирует диаграмму примерно на 11 ячеек. Я не уверен в сопоставлении пикселей с ячейками, но его можно легко перестроить несколькими исследованиями.

  • Excel Addins с использованием Python Win32com.client
  • Данные отсутствуют на листе Excel
  • неверный расчет xlwings при передаче значения в UDF
  • Как я могу извлечь данные excel по имени столбца?
  • "Com_error: (-2147417851, 'Сервер выбрал исключение.', None, None)"
  • Python не получает правильное значение в ячейке Excel
  • Переупорядочить столбцы и строки Excel с помощью Python
  • Как сохранить изменения, внесенные мной на листе Excel?
  • Откройте специальный файл / лист Excel для получения определенного содержимого ячейки
  • Как написать существующий файл excel без перезаписи данных (с использованием pandas)?
  • openpyxl - изменить имя книги в памяти
  • Давайте будем гением компьютера.