28

複数の改行があるセルにデータを書き込もうとしています(\ nと思います)。結果の.xlsxでは改行が削除されています。これらの改行を保持する方法はありますか?

4

4 に答える 4

59

スタイルの API は、openpyxl >= 2 で変更されました。次のコードは、最新の API を示しています。

from openpyxl import Workbook
from openpyxl.styles import Alignment

wb = Workbook()
ws = wb.active # wb.active returns a Worksheet object
ws['A1'] = "Line 1\nLine 2\nLine 3"
ws['A1'].alignment = Alignment(wrapText=True)
wb.save("wrap.xlsx")
于 2016-06-06T07:27:00.323 に答える
38

免責事項: これは、最近のバージョンの Openpyxl では機能しません。他の回答を参照してください。

では、配置プロパティをopenpyxl設定して、複数行の文字列を折り返すことができます。wrap_text

from openpyxl import Workbook

workbook = Workbook()
worksheet = workbook.worksheets[0]
worksheet.title = "Sheet1"

worksheet.cell('A1').style.alignment.wrap_text = True
worksheet.cell('A1').value = "Line 1\nLine 2\nLine 3"

workbook.save('wrap_text1.xlsx')

ここに画像の説明を入力

これはXlsxWriterモジュールでも可能です。

ここに小さな実用的な例があります:

from xlsxwriter.workbook import Workbook

# Create an new Excel file and add a worksheet.
workbook = Workbook('wrap_text2.xlsx')
worksheet = workbook.add_worksheet()

# Widen the first column to make the text clearer.
worksheet.set_column('A:A', 20)

# Add a cell format with text wrap on.
cell_format = workbook.add_format({'text_wrap': True})

# Write a wrapped string to a cell.
worksheet.write('A1', "Line 1\nLine 2\nLine 3", cell_format)

workbook.close()
于 2013-03-13T11:35:41.283 に答える