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 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
Lo que estoy esperando con los anchos ajustados.
Respuestas
22 para la respuesta № 1Podrías usar set_column
como sigue:
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 que todas las columnas se ajusten automáticamente, deberá utilizar el comando win32com
interfaz de la 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.
5 para la respuesta № 2
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)