Xlsxwriterを使用してExcelシートに書き込みます。私は問題に直面しています:テキストがセルサイズを超えると、テキストが非表示になります。
import xlsxwriter
workbook = xlsxwriter.Workbook("file.xlsx")
worksheet1 = workbook.add_worksheet()
worksheet1.write(1, 1,"long text hidden test-1" )
worksheet1.write(2, 1,"long text hidden test-2")
worksheet1.write(3, 1,"short-1")
worksheet1.write(4, 1,"short-2")
worksheet1.write(1, 2,"Hello world" )
worksheet1.write(2, 2,"Hello world")
worksheet1.write(3, 2,"Hello world")
worksheet1.write(4, 2,"Hello world")
workbook.close()
私が得ているもの
幅を調整することで期待すること
次のように set_column
を使用できます。
worksheet1.set_column(1, 1, 25)
これは次のように定義されます。
set_column(first_col, last_col, width, cell_format, options)
すべての列を自動的に自動調整する場合は、次のようにwin32com
インターフェイスを使用する必要があります。
import win32com.client as win32
Excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = Excel.Workbooks.Open(r'file.xlsx')
ws = wb.Worksheets("Sheet1")
ws.Columns.AutoFit()
wb.Save()
Excel.Application.Quit()
これは、現在のxlsxwriterコードを使用してファイルを閉じた後に簡単に実行できます。ファイルへのフルパスを指定する必要がある場合があります。
残念ながら、xlsxwriterは自動調整オプションを提供しません。
ただし、各列の最大エントリを追跡し、set columnコマンドで最後に列幅を設定できます。
set_column(first_col, last_col, width, cell_format, options)
たとえば、あなたのケースでは、B列の幅を最大の文字列の長さに設定する必要があります。
width= len("long text hidden test-1")
worksheet1.set_column(1, 1, width)