[英]Grabbing data from entire index (e.g., DJIA) using pandas web.DataReader
[英]From Python web app: insert data into spreadsheet (e.g. LibreOffice / Excel), calculate and save as pdf
我面臨的問題是,我想將 python 網絡應用程序(在 Tornado Webserver 和 Ubuntu 上運行)中的數據(一個大數據框和一個圖像)推送到電子表格中,計算,另存為 pdf 並交付到前端。
我查看了幾個像 openpyxl 這樣的庫,用於在 MS Excel 中編寫表格,但這只能解決一個問題。 我正在考慮使用 LibreOffice 和 pyoo,但在導入 pyuno 時,我的后端似乎需要與 LibeOffice 附帶的相同的 python 版本。
有人已經解決了類似的問題,並建議如何解決這個問題?
謝謝
我想出了一個讓我們說不漂亮但罕見的解決方案,它對我來說非常靈活。
在執行最后一次調用時,重新計算/更新所有集成公式並創建 pdf(您必須配置 calc 以便在打開文件時啟用自動計算)
import openpyxl
import pandas as pd
from subprocess import call
d = {'col1': [1, 2], 'col2': [3, 4]}
df = pd.DataFrame(data=d)
now = datetime.datetime.now().strftime("%Y%m%d_%H%M_%f")
wb_template_name = 'Template.xlsx'
wb_temp_name = now + wb_template_name
wb = openpyxl.load_workbook(wb_template_name)
ws = wb['dataframe_sheet']
pdf_convert_cmd = 'soffice --headless --convert-to pdf ' + wb_temp_name
for r in dataframe_to_rows(df, index=True, header=True):
ws.append(r)
wb.save(wb_temp_name)
call(pdf_convert_cmd, shell=True)
我這樣做的原因是我希望能夠獨立於數據來設置 pdf 的布局。 我使用引用到 excel 中單獨數據框表的命名范圍或查找。
我還沒有嘗試插入圖像,但這應該類似。 我認為可能有一種方法可以提高性能,同時只需將數據幀轉儲到 xlsx 文件(它是 xmls 的壓縮文件)中,這樣您就不需要 openpyxl。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.