Utilizza lo stile della colonna per le nuove celle in openpyxl

Supponiamo che esista un file esistente .xlsx con gli stili di colonna specificati. Come esempio minimo creare un file vuoto sample.xlsx e facendo clic sulla colonna A impostare il suo stile di numero su Percent (in contrasto con il valore predefinito General ).

Adesso, eseguire il seguente codice

 import openpyxl as pyxl import math sample = 'sample.xlsx' new = 'sample_new.xlsx' wb = pyxl.load_workbook(sample) ws = wb.active ws['A1'] = math.pi print 'Cell format is %s' % ws['A1'].number_format wb.save(new) 

L'output della printing è Cell format is General . E quando si apre sample_new.xlsx in Excel il contenuto della cella A1 è veramente 3.1415926 con lo stile di cella che è General . È interessante notare che se viene aperta in LibreOffice Calc la cella viene visualizzata come desiderato 314.16% e lo stile della cella legge la Percent .

Se tuttavia nel file sample.xlsx originale viene sample.xlsx direttamente la properties; della cella A1 e non dell'intera colonna A , la formattazione funziona come previsto sia in Excel che in LibreOffice , mentre il codice printing il Cell format is Percent .

In pratica devo aggiungere un file esistente .xlsx che conserva la formattazione originale della colonna (che può differire da file a file). Come posso realizzarlo?

Io uso la versione 2.4.0 di openpyxl.

Dovrai impostare manualmente tutti gli stili di cella. Gli stili della colonna e della row nella specifica non corrispondono veramente alle aspettative. Sono promesse per applicazioni su cosa fare quando si creano nuove celle. Ci sono vari motivi, ma la velocità è la principale, perché non lo facciamo in openpyxl.