私はpandasとxlsxwriterを使用して、いくつかのデータフレームをExcelにエクスポートしてフォーマットしています。パンダ:Excelにエクスポートするときに行と列の両方をフォーマットする方法(行形式が優先)
xlsxwriterドキュメントがその言及: http://xlsxwriter.readthedocs.io/worksheet.html?highlight=set_column
A row format takes precedence over a default column format
優先順位を使用して、パーセンテージとして列Bをフォーマットし、次に2として太字の行と、セルB2を太字および%にはならないだろう、ということを意味 - 太字で表示されますが、%では表示されません!
私は以下の例を提供しました。 周囲に道がありますか?おそらくxlsxwriter以外のエンジンですか?おそらく、データフレームをエクスポートした後でフォーマットを適用してExcelにする方法がありますか?
行の最初と最後の列をフォーマットするかどうかには違いはありません。
以下の例では表示されませんが、私のコードでは、すべて同じ列のデータフレームを同じExcelシートにエクスポートします。データフレームはExcel Pivotテーブルと同等で、下部に「合計」行があります。ヘッダー行と合計行を太字にし、各列にデータ(%、千、数百万など)に応じた特定の書式を設定します。以下のサンプルコード。
思考?ありがとう!
import pandas as pd
writer = pd.ExcelWriter('test.xlsx')
wk = writer.book.add_worksheet('Test')
fmt_bold = writer.book.add_format({'bold':True})
fmt_pct = writer.book.add_format({'num_format': '0.0%'})
wk.write(1,1,1)
wk.write(2,1,2)
wk.set_column(1,1, None, fmt_pct)
wk.set_row(1,None, fmt_bold)
writer.close()
私が正しく理解すれば、書式設定セルをセルごと適用する必要があるということですか?言い換えれば、単に%Bの列B、太字の行2、B2を太字で表示し、Excelでファイルを手動で開く場合の方法を%で表す方法はありません。 代わりに、B2:太字と%、C2太字のみ、B3:%のみなどを設定するスクリプトを用意する必要があります。 また、繰り返しを言うときは、 to_excel()メソッドに頼るのではなく、データフレームのセルをセルで記述しますか? –
OpenPyXLはデータフレームを書いた後に書式を追加できると言っていますが、すでにXlsxWriterで書いていますので少し混乱します。私はエンジンとしてxlsxwriterを使用してto_excel()メソッドを使用してデータフレームをエクスポートし、set_format()およびset_columnを使用してExcelにエクスポートしたデータフレームに書式を適用します。 –
PSおそらく、私はwin32comモジュールを使ってPython内からExcelを制御できますか?基本的に私が望むのは、Excelを手動で使用するときに何が起こるかを模倣することです。これは、書式を置き換えるのではなく、追加することです。 –