Ajustar el ancho de celda en Excel

Estoy utilizando xlsxwriter para escribir en la hoja de Excel. Me enfrento al problema: cuando el texto es más que el tamaño de la celda, se está ocultando.

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() 

Lo que estoy consiguiendo

introduzca la descripción de la imagen aquí

Lo que estoy esperando con los anchos ajustados.

introduzca la descripción de la imagen aquí

Puedes usar set_column siguiente manera:

 worksheet1.set_column(1, 1, 25) 

Esto se define de la siguiente manera:

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

Si desea ajustar automáticamente todas las columnas automáticamente, deberá utilizar la interfaz win32com siguiente manera:

 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() 

Esto se puede hacer fácilmente después de cerrar el archivo con su código xlsxwriter actual. Tenga en cuenta que es posible que deba proporcionar una ruta completa a su archivo.

Desafortunadamente, xlsxwriter no proporciona la opción de ajuste automático.

Sin embargo, puede rastrear la entrada más grande para cada columna y luego establecer el ancho de la columna al final con el comando establecer columna.

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

En su caso, por ejemplo, debe establecer el ancho de la columna B a la longitud de la cadena más grande.

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