2017-05-25 14 views
-1

私は大規模な制作を予定しているレポートに使用している特定のフォーマットとオブジェクトを持つ.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 『シート』オブジェクトが属性を持っていない 『を追加します』」それらの問題の提案。

+0

PandasはExcelファイルを読み込むときにxlrdを内部的に使用しますが、データフレームには書式がないため、すべての書式が失われます。 –

+0

xlrdがxlrdを使って既存のExcelファイルからすべての書式設定とオブジェクトを保持する理由はわかりません。私はちょうど既存の書式やオブジェクトを上書きすることなく、ファイルにコンテンツを追加する方法を見つける必要がありました。 – Abootman

答えて

0

新しいデータを貼り付けた後、既存のExcelファイルに書式を再作成するために数式を使用してしまいました。私はまだオブジェクト(例の図形)が不足していますが、別の問題を見つけるまで、私のレポートはそれらなしで生きています。

関連する問題