私はPandasデータフレームをopenpyxlを使用してXLSXに書き出しています。スプレッドシートのセルの多くに長い文が含まれているので、シート(つまり、すべてのセル)。
これを行う方法はありますか? openpyxlに 'wrap_text'の 'Alignment'オプションがあるのを見ましたが、これをすべてのセルに適用する方法がわかりません。
編集:
フィードバックのおかげで、次のことがうまくいきます。注-スタイルは不変であるため、コピーしてください。
for row in ws.iter_rows():
for cell in row:
cell.alignment = cell.alignment.copy(wrapText=True)
おそらく、セルを反復処理するときは、その場所でフォーマットを適用することが考えられます。
for row in ws.iter_rows():
for cell in row:
cell.style.alignment.wrap_text=True
ここでテキストの折り返しスタイルを使用する方法についてもかなり詳しく説明しています openpyxlを使用して複数行の文字列をセルに書き込む
お役に立てれば。
私はopenpyxl> = 2.5.6を使用しています。セルA1のテキストを折り返したいとしましょう。次のコードを使用できます。
from openpyxl.styles import Alignment
ws['A1'].alignment = Alignment(wrap_text=True)
すべてのセルを繰り返す
for rows in ws.iter_rows(min_row=1, min_col=1):
for cell in rows:
print('cell %s %s' % (cell.coordinate,cell.value))
* Python:3.4.2でテスト済み-openpyxl:2.4.1 *