Forum
>>
Principianti
>>
Lettura di un file Excel con Python
Pagina: 1
Esegui il login per scrivere una risposta.
Pagina: 1
Scritto da DarioScibetta |
2017-07-23 19:20:13 - Lettura di un file Excel con Python
|
Buonasera a tutti
Avrei bisogno d'aiuto per un problema apparentemente banale ma per me sicuramente difficile. Vorrei accedere ad un file Excel (.xlsx) con Python, leggere i dati e stampare un grafico Excel. Trascurando intando la parte del grafico, mi ritrovo già ad avere i problemi nella lettura del file. In rete ho trovato i moduli per la manipolazione dei file excel openpyxl e xrld e li ho installati (infatti riesco ad importarli). la guida che sto seguendo è questa: https://devnews.it/posts/596789626646aab171580ec0/come-leggere-creare-file-excel-con-python-openpyxl E seguo anche questo video su youtube: https://www.youtube.com/watch?v=WlGq6R4U2gE Attualmente sono fermo a questo punto: import openpyxl file_excel = openpyxl.load_workbook('Tab_rev01.xlsx') sheet = wb.get_sheet_by_name('Sheet1') print(sheet['A1'].value)La risposta al run è:Al run la risposta è questa: Traceback (most recent call last):
File "C:\Users\...\test1.py", line 3, in <module>
sheet = wb.get_sheet_by_name('Sheet1')
NameError: name 'wb' is not defined N.B. - il percorso del file test1.py l'ho appositamente eliminato ma sull'IDLE compare interamente.
Qualcuno sa aiutarmi a svelare questo mistero? La versione che uso di Python è la 3.6.0 In allegato il file .xlsx di esempio, il grafico vorrebbe avere in ascissa l'ora mentre sull'ordinata il valore indicato con Potenza. Sono a disposizione per ogni chiarimento sul quesito. Grazie in anticipo della collaborazione. Dario --- Ultima modifica di DarioScibetta in data 2017-07-23 19:21:06 --- |
|
Scritto da Daniele aka Palmux |
2017-07-23 22:44:34 - Re: Lettura di un file Excel con Python
|
Ciao Dario, non c'è molto mistero se leggi il messaggio di Python, cosa rappresenta wb nel tuo script? Python non riesce a capirlo ed infatti ti dice che non è definito.
Forse hai dimenticato qualcosa? from openpyxl import Workbook wb = Workbook()Cya |
|
Scritto da DarioScibetta |
2017-07-24 10:22:55 - Re: Lettura di un file Excel con Python
|
Ciao Daniele, è un piacere risentirti. Scusami ancora per la figuraccia del Cya
Tornando a noi; "wb" dovrebbe essere definita nello stesso momento in cui importo openpyxl. (Credo!!?) Se apro il modulo openpyxl e seguo il percorso dei moduli fino a trovare la funzione get_sheet_by_name, che sarebbe openpyxl.workbook.workbook, trovo questo: @deprecated("Use wbsheetname") def get_sheet_by_name(self, name): """Returns a worksheet by its name. :param name: the name of the worksheet to look for :type name: string """ return selfnameQuello che dici tu c'è già scritto nel modulo openpyxxl che rimanda ad un'altro openpyxl.workbook. Quindi in teroia non dovrebbe già essere definito? Ho già provato diverse combinazioni di from... import ... as wb; ma senza successo. Grazie mille N.B. - In allegato il modulo openpyxl Dario --- Ultima modifica di DarioScibetta in data 2017-07-24 10:24:57 --- |
|
Scritto da DarioScibetta |
2017-07-24 11:07:29 - Re: Lettura di un file Excel con Python
|
Daniele
Ho superato il problema della definizione del wb. Però!!!!!!!!! Come sempre ad ogni problema risolto ne sorgono 100. L'errore ora ritornato è questo: TypeError: get_sheet_by_name() missing 1 required positional argument: 'name' ricordando che get_sheet_by_name è una funzione definita in openpyxl.workbook.workbook con la def
@deprecated("Use wbsheetname") def get_sheet_by_name(self, name): """Returns a worksheet by its name. :param name: the name of the worksheet to look for :type name: string """ return selfname a questo punto suppongo che il problema sia nel name. Però non capisco una cosa. Se nel mio codice, che aggiornato ad ora è: import openpyxl from openpyxl import Workbook as wb file_excel = openpyxl.load_workbook('Tab_rev01.xlsx') sheet = wb.get_sheet_by_name('Sheet1') print(sheet['A1'].value)inserisco il 'Sheet1'; lo interpreta a tuo/vostro parere come 'name' o come self (definito nella funzione get_sheet_by_name)? Come dovrei proseguire? Dario |
|
Scritto da Daniele aka Palmux |
2017-07-24 18:46:19 - Re: Lettura di un file Excel con Python
|
Dario prova così come mostrato nella documentazione ufficiale. Ho provato col tuo file e funziona:
>>> from openpyxl import load_workbook >>> wb = load_workbook(filename = 'Tab_rev01.xlsx') >>> sheet_ranges = wb["Foglio1"] >>> print(sheet_ranges["A1"].value) Ora >>> print(sheet_ranges["B1"].value) PotenzaCosì fa quello che chiedi? Cya P.S. Ovviamente i ">>>" sono della modalità interattiva e non vanno riscritti/riportati. |
|
Scritto da DarioScibetta |
2017-07-25 16:16:05 - Re: Lettura di un file Excel con Python
|
Grazie Daniele sei un grande!!!!. Appena ho fatto il Run mi si sono illuminati gl'occhi alla Frankestein Junior "SI PUO' FAREEEE!!!!"
La domanda che mi sorge spontanea dal tuo messaggio è: A quale documentazione ufficiale ti riferisci? Perchè mi piacerebbe trovare documenti su questo argomento, ovvero l'integrazione di Python su Excel. Se hai consigli li accetto volentieri. Grazie mille, continuo a studirci sopra e se ho dubbi (cosa che succederà sicuramente) mi farò vivo. Dario |
|
Scritto da Daniele aka Palmux |
2017-07-25 22:18:02 - Re: Lettura di un file Excel con Python
|
|
|
Scritto da DarioScibetta |
2017-07-25 22:43:12 - Re: Lettura di un file Excel con Python
|
In pratica il datasheet del modulo.
Grazie mille del tuo aiuto, ora ho materiale da studiare per un bel pò. Alla prossima Daniele e a buon rendere. Ciao |
Pagina: 1
Esegui il login per scrivere una risposta.