web-dev-qa-db-ja.com

openpyxlを使用して、独自のスタイルを変更せずにExcel2007ファイル(.xlsx)を編集しますか?

編集する.xlsxファイルがあります。 openpyxl がExcel2007ファイルを操作できることがわかりました。一部のセルの値を変更し、他の設定は変更しないでおきたいだけです。

しかし、 Documentation を実行した後、既存のファイルを編集するための例が見つかりません。 .xlsxファイルの読み取りと新しいファイルへの書き込みのデモのみを行いました。

以下の方法で既存のファイルを編集しようとしましたが、保存した後、ファイル内のスタイル(フォント、色など)が削除されました:

from openpyxl.reader.Excel import load_workbook
wb=load_workbook(r'd:\foo1.xlsx')
ws=wb.get_sheet_by_name('Bar')
ws.cell('A1').value= 'new_value'
# save the workbook to a new file to finish the editing
# but the style settings has been removed (such like font, color) in the new file
wb.save(r'd:\foo2.xlsx')
13
Xiao

現在、openpyxlはスタイルを十分に処理できないため、pywin32 COMを使用してみて、解決策を得ました。これが良いです python-Excel-mini-cookbook Excelにpywin32COMを使用する

16
Xiao

Openpyxlでは、スタイルはまだ完全にはサポートされていません。最近スタイル機能が改善されたため、 最新バージョン (現在は1.5.3)を使用していることを確認してください。

Xlwtには.xlsファイルのより完全なフォーマットがありますが、現時点ではxlsxをサポートしていません。

1
Adam Morris