我一直在試圖在Excel中生成數據。 我生成了.CSV文件。 因此,這很容易。 但生成圖很難在Excel中...使用python在excel中生成圖形
我在想,是python能夠在excel中生成數據和圖嗎? 如果有示例或代碼片段,請隨時發佈:)
或者一種解決方法可以使用python生成圖形格式的圖形,如.jpg等或.pdf文件也可以。只要解決方法不需要依賴項,比如需要安裝boost庫。
我一直在試圖在Excel中生成數據。 我生成了.CSV文件。 因此,這很容易。 但生成圖很難在Excel中...使用python在excel中生成圖形
我在想,是python能夠在excel中生成數據和圖嗎? 如果有示例或代碼片段,請隨時發佈:)
或者一種解決方法可以使用python生成圖形格式的圖形,如.jpg等或.pdf文件也可以。只要解決方法不需要依賴項,比如需要安裝boost庫。
你有2種選擇:
如果您使用的是Windows,你可以使用pywin32(包含在ActivePython)庫使用OLE automation Excel自動運行。
from win32com.client import Dispatch
ex = Dispatch("Excel.Application")
# you can use the ex object to invoke Excel methods etc.
如果您只想生成基本圖等,您可以使用matplotlib。
我建議你在從數據文件中繪製圖形時嘗試gnuplot。
如果您決定使用matplotlib,請查看我的excel到python類PyWorkbooks以獲取數據。它使您可以像numpy數組(matplotlib的本地數據類型)一樣高效且輕鬆地檢索數據。
@大衛高,我期待在做類似的事情。目前我正在使用原始csv或將其轉換爲json,然後將其放入由jqplot讀取的文件夾中。 jquery plotting and graphing library。然後,我需要做的就是讓用戶或我自己在任何Web瀏覽器中顯示劇情。
是的,Xlsxwriter [docs] [pypi]在Python中創建excel charts有很多實用工具。您將需要使用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
[Python中,OpenOffice的:編程方式操縱電子表格]的可能重複(http://stackoverflow.com/questions/2356473/python-openoffice-programatically-manipulating-spreadsheets) – 2011-04-06 14:52:17
一點點重複,但我的問題更多。 – 2011-04-06 21:10:57