Home > python > Python: scrivere su file Excel con XLWT

Python: scrivere su file Excel con XLWT

Abbiamo visto come leggere da un file di excel.
Vediamo come scriverci (sempre prendendo spunto da questa guida):

Se non è installato, installiamo il modulo xwlt

pip install xlwt

importiamo il modulo:

import xlwt

e creiamo un oggetto workbook:

>>> xls_file = xlwt.Workbook()
>>> xls_file
<xlwt.Workbook.Workbook object at 0x030B89D0>

Creiamo un paio di sheets:

>>> for n in range(1, 3):
	xls_file.add_sheet('my_sheet_%s' % n)

<xlwt.Worksheet.Worksheet object at 0x03104430>
<xlwt.Worksheet.Worksheet object at 0x031043D0>
>>> xls_file.get_sheet(0)
<xlwt.Worksheet.Worksheet object at 0x03104430>
>>> my_sheet_1 = xls_file.get_sheet(0)
>>> my_sheet_1.name
u'my_sheet_1'

Tenendo sempre presente che l’indicizzazione, parte da 0,
per scrivere nella cella A1, dello sheet_1, è molto semplice:

>>> my_sheet_1.write(0, 0, 'ABCDEF')
>>> my_sheet_1.write(0, 1, 'XYZ')

Dopo queste operazioni è necessario salvare il workbook:

xls_file.save(r'\tmp\web\python\test_2.xls')

Ora nel percorso utilizzato per il salvataggio, avremo un file xls
con all’interno i due valori precedentemente inseriti

NOTA 1.Sovrascrivere una Cella contenente un valore.

Che succede se tento di sovrascrivere una cella?

>>> my_sheet_1.write(0, 0, 'ZZZZZZ')

Traceback (most recent call last):
...
Exception: Attempt to overwrite cell: sheetname=u'my_sheet_1' rowx=0 colx=0

Per evitare questo problema, bisogna aggiungere l’argomento
cell_overwrite_ok = True, durante la creazione del foglio.

Proviamo creando un nuovo foglio con il nuovo parametro e scriviamo
nella prima cella un valore qualsiasi:

>>> xls_file.add_sheet('my_sheet_3', cell_overwrite_ok=True)
<xlwt.Worksheet.Worksheet object at 0x030B8F50>
>>> my_sheet_3 = xls_file.get_sheet(2)
>>> my_sheet_3.write(0, 0, 'WWWWWWWWWW')
>>> xls_file.save(r'\tmp\web\python\test_2.xls')

>>> workbook = xlrd.open_workbook(r’\tmp\web\python\test_2.xls’)
>>> sheet_3 = workbook.sheet_by_name(‘my_sheet_3′)
>>> sheet_3.cell_value(0, 0)
u’WWWWWWWWWW’

Ora proviamo a modificare il testo:

>>> workbook = xlrd.open_workbook(r'\tmp\web\python\test_2.xls')
>>> sheet_3 = workbook.sheet_by_name('my_sheet_3')
>>> sheet_3.cell_value(0, 0)
u'ZZZZZZZZ'

NOTA 2. Associare uno stile alla cella.

Per prima cosa inizializziamo lo stile:

>>> my_style = xlwt.XFStyle()

poi il font:

>>> my_font = xlwt.Font()
>>> my_font.name = 'Tahoma'
>>> my_font.bold = True

infine associamo il font allo stile:

>>> my_style.font = my_font

Ora non resta che scrivere sulla cella

>>> my_sheet_3.write(0, 0, label='Tahoma', style=my_style)
>>> xls_file.save(r'\tmp\web\python\test_2.xls')

Se in corso d’opera vogliamo modificare il font, lo reinizializziamo:

>>> my_font = xlwt.Font()  # reinizializzo il font
>>> my_font.name = 'Times New Roman'
>>> my_font.bold = False
>>> my_style.font = my_font  # lo riassocio allo stile
>>> my_sheet_3.write(1, 0, label='Times New Roman', style=my_style)
>>> xls_file.save(r'\tmp\web\python\test_2.xls')

Il risultato è il seguente:

Annunci
Categorie:python
  1. Fabrizio
    novembre 7, 2012 alle 5:20 pm

    Buon giorno,
    mi potreste dire come posso scaicare il odulo XLWT
    Grazie

  2. novembre 7, 2012 alle 10:28 pm
  3. giuseppe
    gennaio 4, 2013 alle 6:52 pm

    grazie, leggendo questo articolo sono riuscito in un quarto d’ora a
    leggere e riscrivere un file excel da 25 sheet, ogniuna composta da
    3 colonne per 359 righe, python non finira’ mai di stupirmi.

  4. gennaio 5, 2013 alle 11:48 am

    giuseppe :

    …python non finira’ mai di stupirmi.

    Sono d’accordo.
    Ciao

  1. agosto 5, 2010 alle 12:31 pm

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: