использовать Python для генерации графа в Excel - PullRequest
6 голосов
/ 06 апреля 2011

Я пытался генерировать данные в Excel.Я сгенерировал .CSV файл.Так что до этого момента это легко.Но генерировать граф довольно сложно в Excel ...

Мне интересно, способен ли python генерировать данные и граф в Excel?Если есть примеры или фрагменты кода, не стесняйтесь их публиковать:)

Или для обхода этой проблемы можно использовать python для генерации графика в графическом формате, например .jpg и т. Д., Или файл .pdf также в порядке.так как обходной путь не требует зависимости, такой как необходимость установить библиотеку boost.

Ответы [ 5 ]

10 голосов
/ 19 октября 2015

Да, Xlsxwriter [ docs ] [ pypi ] имеет множество полезных возможностей для создания таблиц excel в Python. Тем не менее, вам нужно будет использовать формат файла xlsx, поскольку неправильные параметры оставляют мало откликов, и вы не можете прочитать вывод.

import xlsxwriter
import random
# Example data
# Try to do as much processing outside of initializing the workbook
# Everything beetween Workbook() and close() gets trapped in an exception
random_data = [random.random() for _ in range(10)]
# Data location inside excel
data_start_loc = [0, 0] # xlsxwriter rquires list, no tuple
data_end_loc = [data_start_loc[0] + len(random_data), 0]

workbook = xlsxwriter.Workbook('file.xlsx')

# Charts are independent of worksheets
chart = workbook.add_chart({'type': 'line'})
chart.set_y_axis({'name': 'Random jiggly bit values'})
chart.set_x_axis({'name': 'Sequential order'})
chart.set_title({'name': 'Insecure randomly jiggly bits'})

worksheet = workbook.add_worksheet()

# A chart requires data to reference data inside excel
worksheet.write_column(*data_start_loc, data=random_data)
# The chart needs to explicitly reference data
chart.add_series({
    'values': [worksheet.name] + data_start_loc + data_end_loc,
    'name': "Random data",
})
worksheet.insert_chart('B1', chart)

workbook.close()  # Write to file

output of exmaple

3 голосов
/ 06 апреля 2011

У вас есть 2 варианта:

Если вы работаете в Windows, вы можете использовать библиотеку pywin32 (входит в ActivePython ) для автоматизации Excel с использованием OLEавтоматизация .

from win32com.client import Dispatch
ex = Dispatch("Excel.Application")
# you can use the ex object to invoke Excel methods etc.

Если все, что вам нужно, это просто создать базовые графики и т. Д., Вы можете использовать matplotlib .

2 голосов
/ 06 апреля 2011

Я предлагаю вам попробовать gnuplot при рисовании графика из файлов данных.

1 голос
/ 06 апреля 2011

@ Дэвид Гао, я собираюсь сделать что-то подобное. В настоящее время я смотрю на использование raw csv или на преобразование его в json и просто помещаю его в папку, которая читается jqplot. Библиотека построения и построения графиков jquery . Тогда все, что мне нужно сделать, это заставить пользователя или себя отображать график в любом веб-браузере.

1 голос
/ 06 апреля 2011

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

https://sourceforge.net/projects/pyworkbooks/

...