Come lavorare con documenti Excel usando Python

Credo che tu abbia usato Microsoft Excel in qualche occasione. È molto potente quando si tratta di lavorare con fogli di calcolo, tabelle, grafici, ecc. Ma cosa c'entra Python?? 

Python è un punto di svolta quando si tratta di file Excel perché può automatizzare le cose scoraggianti che potresti incontrare in alcune attività relative a Excel. Ad esempio, potrebbe essere richiesto di cercare alcune informazioni in centinaia di fogli di calcolo dei budget della società. Molto scoraggiante, non è vero? In questo tutorial, ti mostrerò come Python può essere usato facilmente per lavorare con i documenti Excel.

Oh, non preoccuparti se sul tuo computer non è installato Microsoft Excel. Puoi usare altre alternative per seguire questo tutorial, come LibreOffice Calc e OpenOffice Calc.

Quindi iniziamo!

OpenPyXL

OpenPyXL è una libreria utilizzata per leggere e scrivere Excel 2010 xlsx / xlsm / xltx / XLTM File. Questa è la libreria che useremo in questo tutorial per lavorare con i documenti Excel.

La prima cosa che dobbiamo fare per usare questa libreria è installare OpenPyXL.

Installazione di OpenPyXL

Per installare OpenPyXL, useremo pip, che è (basato su Wikipedia):

Un sistema di gestione dei pacchetti usato per installare e gestire pacchetti software scritti in Python. Molti pacchetti possono essere trovati nel Python Package Index (PyPI).

È possibile seguire i passaggi indicati nella Guida dell'utente di Python Packaging per l'installazione seme, ma se lo hai Python 2.7.9 e più in alto, o Python 3.4 e più in alto, l'hai già fatto seme!

OpenPyXL ora può essere semplicemente installato digitando il seguente comando (nel terminale di Mac OS X):

pip installa openpyxl

Aprire un documento Excel

Dopo l'installazione OpenPyXL, siamo pronti per iniziare a lavorare con i documenti Excel. Il primo compito normale che dovremmo eseguire su un documento Excel è Aperto quel documento. Vai avanti e scarica il file Excel sample.xlsx per seguire il tutorial, oppure puoi usare qualsiasi file di Excel che ti piace. 

Prima che possiamo usare OpenPyXL, abbiamo bisogno di importare esso, come segue:

importa openpyxl

Il metodo di cui abbiamo bisogno per aprire il documento Excel è load_workbook (). Se ti stai chiedendo cosa si intende per una cartella di lavoro, è semplicemente il documento del foglio di calcolo di Excel. Lo script che abbiamo quindi bisogno di aprire un documento Excel è il seguente:

import openpyxl excel_document = openpyxl.load_workbook ('sample.xlsx')

Vediamo ora il genere restituito dal load_workbook () metodo. Questo può essere fatto come segue:

tipo di stampa (excel_document)

Ciò restituirà quanto segue:

 

Come possiamo vedere, l'oggetto restituito è Cartella di lavoro, del tipo di dati cartella di lavoro. Il Cartella di lavoro l'oggetto qui rappresenta il file Excel.

Nomi dei fogli

I fogli in Excel sono costituiti da colonne (con lettere che iniziano con A, B, C, ecc.) E righe (a partire da 1, 2, 3, ecc.). Per verificare quali schede abbiamo nel nostro documento Excel, usiamo il get_sheet_names () metodo come segue:

excel_document.get_sheet_names ()

Se noi stampare il comando sopra riportato, otteniamo quanto segue:

[U'Sheet1' ]

Dimostrando così che abbiamo un foglio, chiamato sheet1.

Se hai più fogli, puoi accedere a un foglio specifico con il suo nome usando questo metodo: get_sheet_by_name ().

Accesso alle celle

Ora che abbiamo imparato come aprire un file Excel e ottenere il foglio, vediamo come è facile accedere a una cella in quel foglio. Tutto ciò che devi fare è recuperare quel foglio e quindi determinare la posizione (coordinate) della cella. Diciamo che vogliamo accedere alla colonna UN riga 2 nel documento Excel che abbiamo, cioè A2. Questo può essere implementato come segue:

foglio = excel_document.get_sheet_by_name ('Foglio1') foglio di stampa ['A2']. valore

In questo caso, verrà restituito il seguente valore: Abder.

Possiamo anche usare una notazione riga-colonna. Ad esempio, se vogliamo accedere alla cella alla riga 5 e colonna 2, digitiamo il seguente:

sheet.cell (row = 5, column = 2) .value

L'output in questo caso sarà: programmatore.

Se vogliamo vedere il tipo di oggetto che rappresenta la cella, possiamo digitare:

tipo di stampa (foglio ['A2'])

o:

print sheet.cell (row = 5, column = 2)

In questo caso, otterresti il ​​seguente risultato:


il che significa che l'oggetto è di tipo Cellula.

Accedere a un intervallo di celle

E se fossi interessato ad accedere a un intervallo di celle anziché a una sola cella? Diciamo che vogliamo accedere alle celle da A1 a B3, che assomigliano a questo nel nostro documento Excel?

Questo può essere fatto usando il seguente script:

multiple_cells = foglio ['A1': 'B3'] per riga in multiple_cells: per cella in riga: print cell.value

In questo caso, otterrai il seguente risultato:

Nome Professione Abder Student Bob Engineer

Accesso a tutte le righe e colonne

OpenPyXL ti consente di accedere a tutte le righe e le colonne del tuo documento Excel, usando (righe) e colonne () metodi, rispettivamente.

Per accedere a tutte le righe, possiamo fare quanto segue:

all_rows = sheet.rows stampa all_rows [:]

Si noti che abbiamo usato il [:] notazione per accedere a tutti i righe. Questo perché il tipo di oggetto restituito da intero documento è un tuple.

L'output dello script precedente sarà il seguente:

((, ), (, ), (, ), (, ), (, ), (, ), (, ))

D'altra parte, se vogliamo accedere a tutti i colonne, facciamo semplicemente quanto segue:

all_columns = sheet.columns stampa all_columns [:]

In tal caso, otterrai il seguente risultato:

((, , , , , , ), (, , , , , , ))

Ovviamente c'è più che puoi fare con i documenti Excel, come puoi vedere nella documentazione di OpenPyXL. 

Conclusione

Da questo tutorial, abbiamo notato quanto può essere flessibile lavorare con i documenti Excel usando Python. Ricorda lo scenario menzionato all'inizio del tutorial? Vale la pena provare come un progetto!

Impara Python

Impara Python con la nostra guida completa al tutorial su Python, sia che tu stia appena iniziando o che sei un programmatore esperto che cerca di imparare nuove abilità.