2009-02-16 11 views
5

Mi è stato assegnato il compito di collegare il mio codice (fortran) con py (2.5) e generare un numero di rapporti excel, se possibile. La prima parte è andata bene e ho finito, ma ora sto lavorando al secondo.python excel making reports

Quali sono le mie scelte per creare fogli Excel (2007 se possibile) da Python? In generale, avrei bisogno di inserire alcuni valori di matrice in una tabella (la formattazione non ha importanza) e tracciare un numero di grafici da quelle tabelle. C'è un modo per farlo automaticamente? Qualche biblioteca?

Qualcuno ha fatto qualcosa del genere in passato?

risposta

3

L'approccio più semplice è utilizzare la libreria csv di Python per creare un semplice file CSV. Excel li importa senza fatica.

Quindi fai cose di Excel per fare grafici delle pagine create dai fogli CSV.

Esistono alcune ricette per il controllo di Excel da Python. Vedi http://code.activestate.com/recipes/528870/ per un esempio. L'esempio ha riferimenti ad altri progetti.

Inoltre, è possibile utilizzare pyExcelerator o xlwt per creare una cartella di lavoro Excel più completa.

+2

Nota: né pyExcelerator né xlwt eseguono i grafici. –

2

Credo che si hanno due opzioni:

  1. controllo di Excel da Python (usando pywin32, vedere this question). Richiede Windows ed Excel.
  2. Utilizzare la libreria Python pura xlwt.

Non ho provato xlwt, non so se gestisce i grafici.

1

PyExcelerator ha alcune stranezze che è necessario risolvere (almeno lo ha fatto l'ultima volta che l'ho usato), ma farà il lavoro abbastanza bene.

Non ho provato xlwt, ma siccome è un fork di PyExcelerator, si potrebbe sospettare che abbia tutte le stesse caratteristiche e, auspicabilmente, meno stranezze.

+0

"Meno stranezze" o "meno stranezze"? –

+1

Non essendo un madrelingua inglese non sono sicuro di vedere la differenza tra i due? – Epcylon

1

C'è un pacchetto su Cheese Shop chiamata xlutils che potrebbe aiutare e non v'è this presentation from Chris Withers (fulmini discorso da ultimo EuroPython credo) dove si possono vedere qualche esempio di codice con XLRD e xlwt . Sembra facile ;-)

Spero che questo aiuti.