/ / Настройка на ширината на клетките в Excel - python, excel, xlsxwriter

Регулирайте ширината на клетките в Excel - python, excel, xlsxwriter

Използвам 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()

Какво получавам

въведете описанието на изображението тук

Какво очаквам с коригирани ширини

въведете описанието на изображението тук

Отговори:

22 за отговор № 1

Можете да използвате 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 код. Забележете, че може да се наложи да предоставите пълен път към файла.


5 за отговор № 2

За съжаление xlsxwriter не предлага опция за автоматично настройване.

Въпреки това можете да проследите най-големия запис за всяка колона и след това да зададете ширината на колоната в края с команда за колона.

set_column(first_col, last_col, width, cell_format, options)

Например, в случая трябва да зададете ширината на колона B до дължината на най-големия низ.

width= len("long text hidden test-1")
worksheet1.set_column(1, 1, width)