私は大規模な制作を予定しているレポートに使用している特定のフォーマットとオブジェクトを持つ.xslxファイルを持っていますPython。私はもともとopenpyxlでテンプレート(openpyxl.load_workbook())のコピーを読み込み、ファイル(openpyxl.dataframe_to_rows())にPandasデータフレームを書き込み、その後の配布用にファイルを保存しました。私は、openpyxl.load_workbookが書式設定やオブジェクトを読み込まないため、新しいファイルからそれらが削除されることが分かりました。そこで、xlrdを使って、書式設定とオブジェクトを適切にロードしたファイル(xlrd.open_workbook())を開きます。ただし、openpyxlはテンプレートファイルの空のコピーを作成するファイルに書き込むことはありません。 openpyxlの代わりに使うことができるパッケージか、それ自体で読み書きを扱うために使用できる別のパッケージがありますか? Xlsxwriterも動作しませんでした。以下のコードサンプルを参照してください。また、私はエラーを取得しています.xslxテンプレートをインポートするPython Xlrd、Openpyxlを使用して.xslxファイルを編集して再保存する
from xlrd import open_workbook
from openpyxl.utils.dataframe import dataframe_to_rows
import pandas as pd
import shutil
shutil.copy2('template.xlsx', 'new_report.xlsx')
book = open_workbook('new_report.xlsx')
writer = pd.ExcelWriter(book, engine='openpyxl')
ws = book.sheet_by_name('Sheet1')
for r in dataframe_to_rows(result, index=False, header=False):
ws.cell(colx=1, rowx=1)
ws.append(r)
book.save('new_report.xlsx')
:「はAttributeError: 『ブック』オブジェクトが属性を持っていない 『保存』」と:誰もが持っている場合は、コードから「はAttributeError 『シート』オブジェクトが属性を持っていない 『を追加します』」それらの問題の提案。
PandasはExcelファイルを読み込むときにxlrdを内部的に使用しますが、データフレームには書式がないため、すべての書式が失われます。 –
xlrdがxlrdを使って既存のExcelファイルからすべての書式設定とオブジェクトを保持する理由はわかりません。私はちょうど既存の書式やオブジェクトを上書きすることなく、ファイルにコンテンツを追加する方法を見つける必要がありました。 – Abootman