2015-11-12 12 views
7

Sto usando xlsxwriter per scrivere nel foglio Excel. Sto affrontando un problema: quando il testo è più della dimensione della cella si sta nascondendo.Regola larghezza cella in 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() 

Quello che sto ottenendo

enter image description here

Cosa mi aspetto con larghezze adjusted

enter image description here

risposta

16

Si potrebbe usare set_column come segue :

worksheet1.set_column(1, 1, 25) 

Questo è definito come segue:

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

Se si vuole autofit tutte le colonne automaticamente, allora sarà necessario utilizzare l'interfaccia win32com come segue:

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

Questo può essere fatto facilmente dopo aver chiuso il file usando il codice xlsxwriter corrente. Nota, potresti dover fornire un percorso completo al tuo file.

+0

Nice, la soluzione 'win32com' è perfetta. Grazie! –

5

Sfortunatamente xlsxwriter non fornisce l'opzione di autofit.

È tuttavia possibile tenere traccia della voce più grande per ogni colonna e quindi impostare la larghezza della colonna alla fine con il comando di colonna impostato.

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

Nel tuo caso, per esempio, è necessario impostare la larghezza della colonna B per la lunghezza della stringa più grande.

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

Qualsiasi indizio su come ottenere l'entità più grande nella colonna !! – Ravichandra

+1

Supponendo di aver portato i dati da un set di dati e di averli scritti su un foglio excel. È possibile analizzare il set di dati per la stringa massima e impostare la larghezza. Una risposta più specifica richiede più informazioni. –

Problemi correlati