Manipolare i fogli di calcolo Excel usando Python

Manipolare i fogli di calcolo Excel usando Python

Microsoft Excel è un software di foglio di calcolo che viene utilizzato per archiviare e gestire i dati tabulari. Inoltre, con Excel, i calcoli possono essere eseguiti applicando formule ai dati e è possibile produrre visualizzazioni di dati.Molti compiti eseguiti in fogli di calcolo, come le operazioni matematiche, possono essere automatizzate tramite la programmazione e molti linguaggi di programmazione hanno moduli per manipolare i fogli di calcolo Excel. In questo tutorial, ti mostreremo come utilizzare il modulo OpenPyxl di Python per leggere e modificare i fogli di calcolo Excel.

Installazione di OpenPyXL

Prima di poter installare OpenPyXL, è necessario installare PIP. PIP viene utilizzato per installare pacchetti Python. Eseguire il comando seguente nel prompt dei comandi per vedere se è installato PIP.

C: \ Users \ Windows> PIP Guida

Se viene restituito il contenuto di aiuto di PIP, viene installato PIP; Altrimenti, vai al seguente link e scarica il GET-PIP.Py File:

https: // bootstrap.pypa.io/get-pip.Py

Ora, esegui il seguente comando per installare PIP:

C: \ Users \ Windows> Python Get-Pip.Py

Dopo aver installato PIP, il seguente comando può essere utilizzato per installare OpenPyxl.

C: \ Users \ Windows> PIP Installa OpenPyxl

Creazione di un documento Excel

In questa sezione, useremo il modulo OpenPyXL per creare un documento Excel. Innanzitutto, aprire il prompt dei comandi digitando "CMD" nella barra di ricerca; Quindi, entra

C: \ Users \ Windows> Python

Per creare una cartella di lavoro di Excel, importare il modulo OpenPyxl e quindi utilizzare il metodo "Workbook ()" per creare una cartella di lavoro.

>>> # Importazione del modulo OpenPyxl
>>> Importa openpyxl
>>> # inizializza una cartella di lavoro
>>> work_book = openpyxl.Libro di lavoro ()
>>> # salvataggio della cartella di lavoro come "esempio.xlsx '
>>> work_book.Salva ('Esempio.xlsx ')

I comandi sopra creano un documento Excel chiamato esempio.xlsx. Successivamente, manipoteremo questo documento Excel.

Manipolando i fogli in un documento Excel

Abbiamo creato un documento Excel chiamato esempio.xlsx. Ora manipoleremo i fogli di questo documento usando Python. Il modulo OpenPyxl ha un metodo 'create_sheet ()' che può essere utilizzato per creare un nuovo foglio. Questo metodo prende due argomenti: indice e titolo. L'indice definisce il posizionamento del foglio utilizzando qualsiasi numero intero non negativo (incluso 0) e il titolo è il titolo del foglio. Un elenco di tutti i fogli nell'oggetto Work_Book può essere visualizzato chiamando l'elenco dei fogli.

>>> # Importazione di openpyxl
>>> Importa openpyxl
>>> # Caricamento del documento Excel esistente nell'oggetto Work_Book
>>> work_book = openpyxl.load_workbook ('Esempio.xlsx ')
>>> # Creazione di un nuovo foglio al 0 ° indice
>>> work_book.Create_Sheet (index = 0, title = 'First Sheet')

>>> # Ottenere tutti i fogli
>>> work_book.fogli
["Primo foglio", "foglio"]
>>> # salvare il documento Excel
>>> work_book.Salva ('Esempio.xlsx ')

Nel codice sopra, abbiamo creato un foglio denominato primo foglio e posizionato al 0 ° indice. Il foglio precedentemente situato all'Indice 0 ° è stato spostato nel primo indice, come mostrato nell'output. Ora cambieremo il nome del foglio originale dal foglio al secondo foglio.

L'attributo del titolo contiene il nome del foglio. Per rinominare un foglio, dobbiamo prima navigare su quel foglio come segue.

>>> # Ottenere il foglio attivo dal documento Excel
>>> foglio = work_book.attivo
>>> # Nome del foglio di stampa
>>> stampa (foglio.titolo)
Primo foglio >>> # Navigazione al secondo foglio (all'indice 1)
>>> work_book.attivo = 1
>>> # Ottenere il foglio attivo
>>> foglio = work_book.attivo
>>> # Nome del foglio di stampa
>>> stampa (foglio.titolo)
Foglio >>> # Modifica del titolo del foglio
>>> foglio.title = 'secondo foglio'
>>> # titolo del foglio di stampa
>>> stampa (foglio.titolo)
Secondo foglio

Allo stesso modo, possiamo rimuovere un foglio dal documento Excel. Il modulo OpenPyXL offre il metodo Rimovi () per rimuovere un foglio. Questo metodo prende il nome del foglio per essere rimosso come argomento e quindi rimuove quel foglio. Possiamo rimuovere il secondo foglio come segue:

>>> # Rimozione di un foglio per nome
>>> work_book.Rimuovi (work_book ['secondo foglio'])
>>> # Ottenere tutti i fogli
>>> work_book.fogli
["Primo foglio"]
>>> # salvare il documento Excel
>>> work_book.Salva ('Esempio.xlsx ')

Aggiunta di dati alle celle

Finora, ti abbiamo mostrato come creare o eliminare i fogli in un documento Excel. Ora aggiungeremo dati alle celle di diversi fogli. In questo esempio, abbiamo un singolo foglio chiamato Primo foglio nel nostro documento e vogliamo creare altri due fogli.

>>> # Importazione di openpyxl
>>> Importa openpyxl
>>> # caricamento della cartella di lavoro
>>> work_book = openpyxl.load_workbook ('Esempio.xlsx ')
>>> # Creazione di un nuovo foglio al 1 ° indice
>>> work_book.create_sheet (index = 1, title = 'secondo foglio')

>>> # Creazione di un nuovo foglio al secondo indice
>>> work_book.create_sheet (index = 2, title = 'terzo foglio')

>>> # Ottenere tutti i fogli
>>> work_book.fogli
["Primo foglio", "secondo foglio", "terzo foglio"]

Ora abbiamo tre fogli e aggiungeremo dati alle celle di questi fogli.

>>> # Ottenere il primo foglio
>>> foglio_1 = work_book ['primo foglio']
>>> # Aggiunta di dati alla cella 'A1' del primo foglio
>>> foglio_1 ['a1'] = 'name'
>>> # Ottenere il secondo foglio
>>> foglio_2 = work_book ['secondo foglio']
>>> # Aggiunta di dati alla cella 'A1' del secondo foglio
>>> foglio_2 ['a1'] = 'id'
>>> # Ottenere il terzo foglio
>>> foglio_3 = work_book ['terzo foglio']
>>> # Aggiunta di dati alla cella 'A1' del terzo foglio
>>> foglio_3 ['a1'] = 'gradi'
>>> # salvare la cartella di lavoro di Excel
>>> work_book.Salva ('Esempio.xlsx ')

Leggendo fogli Excel

Il modulo OpenPyXL utilizza l'attributo del valore di una cella per archiviare i dati di quella cella. Possiamo leggere i dati in una cella chiamando l'attributo del valore della cella. Ora abbiamo tre fogli e ogni foglio contiene alcuni dati. Possiamo leggere i dati utilizzando le seguenti funzioni in OpenPyxl:

>>> # Importazione di openpyxl
>>> Importa openpyxl
>>> # caricamento della cartella di lavoro
>>> work_book = openpyxl.load_workbook ('Esempio.xlsx ')
>>> # Ottenere il primo foglio
>>> foglio_1 = work_book ['primo foglio']
>>> # Ottenere il secondo foglio
>>> foglio_2 = work_book ['secondo foglio']
>>> # Ottenere il terzo foglio
>>> foglio_3 = work_book ['terzo foglio']
>>> # Stampa dati dalla cella "A1" del primo foglio
>>> stampa (foglio_1 ['a1'].valore)
Nome
>>> # Stampa dati dalla cella 'A1' del secondo foglio
>>> stampa (foglio_2 ['a1'].valore)
ID
>>> # Stampa dati dalla cella "A1" del terzo foglio
>>> stampa (foglio_3 ['a1'].valore)
gradi

Cambiare caratteri e colori

Successivamente, ti mostreremo come cambiare il carattere di una cella usando la funzione carattere (). Innanzitutto, importare OpenPyxl.Oggetto Stili. Il metodo Font () prende un elenco di argomenti, tra cui:

  • nome (stringa): il nome del carattere
  • dimensione (int o galleggiante): le dimensioni del carattere
  • sottolineare (stringa): il tipo sottolinea
  • colore (stringa): il colore esadecimale del testo
  • corsivo (bool): se il carattere è in corsivo
  • audace (bool): se il carattere è in grassetto

Per applicare gli stili, dobbiamo prima creare un oggetto passando tutti i parametri al metodo Font (). Quindi, selezioniamo il foglio e all'interno del foglio, selezioniamo la cella a cui vogliamo applicare lo stile. Quindi, applichiamo lo stile alla cella selezionata.

>>> # Importazione di openpyxl
>>> Importa openpyxl
>>> # Importazione del metodo font da OpenPyxl.stili
>>> da OpenPyxl.Stili Font di importazione
>>> # caricamento della cartella di lavoro
>>> work_book = openpyxl.load_workbook ('Esempio.xlsx ')
>>> # Creazione di oggetti di stile
>>> style = font (name = 'conlasf', size = 13, Bold = true,
… Corsivo = falso)
>>> # Selezione del foglio dalla cartella di lavoro
>>> foglio_1 = work_book ['primo foglio']
>>> # selezionando la cella che vogliamo aggiungere stili
>>> a1 = foglio_1 ['a1']
>>> # applicare stili alla cella
>>> A1.font = stile
>>> # salvataggio della cartella di lavoro
>>> work_book.Salva ('Esempio.xlsx ')

Applicare i bordi alle cellule

Possiamo applicare i bordi alle celle in un foglio Excel usando i metodi bordo () e laterale () di OpenPyxl.stili.Modulo Borders. Possiamo passare diverse funzioni come parametri al metodo bordo (). Di seguito sono riportate alcune delle funzioni che vengono passate come parametri al metodo bordo () per definire le dimensioni del bordo.

  • Sinistra: applicare un bordo sul lato sinistro di una cella
  • Giusto: applicare un bordo sul lato destro di una cella
  • superiore: applicare un bordo alla cima di una cella
  • metter il fondo a: applicare un bordo sul fondo di una cella

Queste funzioni prendono gli attributi di stile come parametri. L'attributo di stile definisce lo stile del bordo (E.G., solido, tratteggiato). I parametri di stile possono avere uno dei seguenti valori.

  • Doppio: un bordo a doppia linea
  • tratteggiato: un bordo tratteggiato
  • magro: un bordo sottile
  • medio: un bordo medio
  • Mediumdashdot: un bordo tratteggiato e tratteggiato di peso medio
  • spesso: un bordo spesso
  • Dashdot: un bordo tratteggiato e tratteggiato
  • capelli: un bordo molto sottile
  • punteggiato: un confine tratteggiato

Ora applicheremo diversi tipi di bordi a diverse celle dei nostri fogli di calcolo. Innanzitutto, selezioniamo le cellule e poi definiamo gli stili di confine e applichiamo questi stili a cellule diverse.

>>> # Importazione di openpyxl
>>> Importa openpyxl
>>> # Classi di confine e laterazione importanti
>>> da OpenPyxl.stili.bordi bordo di importazione, lato
>>> # caricamento della cartella di lavoro
>>> work_book = openpyxl.load_workbook ('Esempio.xlsx ')
>>> # Selezione del foglio
>>> foglio_1 = work_book ['primo foglio']
>>> # Selezione di celle diverse dal foglio
>>> cell_1 = foglio_1 ['a1']
>>> cell_2 = sheet_1 ['b2']
>>> cell_3 = sheet_1 ['c3']
>>> # Definizione di diversi stili di confine
>>> style_1 = bordo (bottom = side (style = 'punteggiato'))
>>> style_2 = bordo (a destra = side (style = 'thin'))
>>> style_3 = bordo (top = side (style = 'dashDot'))
>>> # Applicazione di stili di confine alle celle
>>> cell_1.bordo = stile_1
>>> cell_2.bordo = stile_2
>>> cell_3.bordo = stile_3
>>> # salvataggio della cartella di lavoro
>>> work_book.Salva ('Esempio.xlsx ')

Regolazione delle dimensioni della riga e della colonna

L'altezza della riga e la larghezza della colonna di un documento Excel possono anche essere regolate usando Python. Il modulo OpenPyXL ha due metodi integrati che possono essere utilizzati per eseguire queste azioni. Innanzitutto, selezioniamo il foglio di cui vogliamo cambiare la larghezza della colonna o l'altezza della riga. Quindi, applichiamo un metodo alla riga o alla colonna specifica.

>>> # Importazione di openpyxl
>>> Importa openpyxl
>>> # caricamento della cartella di lavoro
>>> work_book = openpyxl.load_workbook ('Esempio.xlsx ')
>>> # Selezione del foglio
>>> foglio_1 = work_book ['primo foglio']
>>> # Modifica l'altezza della prima riga
>>> foglio_1.row_dimensions [1].altezza = 50
>>> # salvataggio della cartella di lavoro
>>> work_book.Salva ('Esempio.xlsx ')

Allo stesso modo, possiamo modificare la larghezza di una colonna usando il seguente codice

>>> # Selezione del foglio dalla cartella di lavoro di Excel
>>> foglio_2 = work_book ['secondo foglio']
>>> # Modifica della larghezza di una colonna
>>> foglio_2.column_dimensions ['a'].larghezza = 50
>>> # salvataggio della cartella di lavoro
>>> work_book.Salva ('Esempio.xlsx ')

Il codice sopra cambierà l'altezza della prima riga in 50 punti e la larghezza della colonna a 50 punti.

Cellule di fusione e non permanente

Quando lavoriamo con i fogli di calcolo di Excel, spesso dobbiamo unire e scendere le cellule. Per unire le celle in Python, è possibile utilizzare una semplice funzione basata su OpenPyxl. Il modulo OpenPyXL offre il metodo Merge_Cells (), che può essere utilizzato per unire le celle in Excel. La nuova cella assumerà il nome della cella in alto a sinistra. Ad esempio, se vogliamo unire le celle dalla cella A1 alla cella B2, la cella appena formata verrà definita A1. Per unire le celle usando OpenPyXL, prima selezioniamo il foglio, quindi applichiamo il metodo Merge_Cells () al foglio.

>>> # Importazione del modulo OpenPyxl
>>> Importa openpyxl
>>> # caricamento della cartella di lavoro
>>> work_book = openpyxl.load_workbook ('Esempio.xlsx ')
>>> # Selezione del primo foglio dalla cartella di lavoro di Excel
>>> foglio_1 = work_book ['primo foglio']
>>> # fusione delle celle da A1 a B2 nel foglio 1
>>> foglio_1.Merge_Cells ('A1: B2')
>>> # salvataggio della cartella di lavoro
>>> work_book.Salva ('Esempio.xlsx ')

Allo stesso modo, il metodo UNMERGE_CELLS () può essere utilizzato per sgretolare le celle in un foglio di calcolo Excel. Il seguente codice può essere utilizzato per immergere le celle:

>>> # Selezione del foglio dalla cartella di lavoro
>>> foglio_1 = work_book ['primo foglio']
>>> # celle non permutanti da A1 a B2
>>> foglio_1.UNMERGE_CELLS ('A1: B2')
>>> # salvataggio della cartella di lavoro
>>> work_book.Salva ('Esempio.xlsx ')

Conclusione

I fogli di calcolo Excel sono comunemente utilizzati per la manipolazione dei dati. Tuttavia, tali compiti possono essere monotono. Pertanto, in tali casi, la programmazione può essere utilizzata per automatizzare la manipolazione dei fogli di calcolo.

In questo articolo, abbiamo discusso alcune delle funzioni utili del modulo OpenPyXL di Python. Ti abbiamo mostrato come creare, leggere, rimuovere e modificare i fogli di calcolo di Excel, come cambiare lo stile, applicare carattere, bordi e dimensioni delle celle e come unire e scomponersi le celle. Applicando queste funzioni, è possibile automatizzare molte attività di manipolazione del foglio di calcolo usando Python.