2015-04-27 26 views
5

Utilizzando openpyxl, sto provando a leggere i dati da una cartella di lavoro Excel e scrivere i dati su questa stessa cartella di lavoro Excel. Ottenere dati da Excel-Workbook funziona correttamente, ma la scrittura dei dati in Excel-Workbook non funziona. Con il codice qui sotto ottengo il valore da Cell A1 in Sheet1 e lo stampo. Quindi provo a inserire alcuni valori nelle celle A2 e A3. Questo non funziona.Scrittura dei dati in Excel-Sheet utilizzando openpyxl non funziona

from openpyxl import Workbook 
from openpyxl import load_workbook 


wb = load_workbook("testexcel.xlsm") 
ws1 = wb.get_sheet_by_name("Sheet1") 

#This works: 
print ws1.cell(row=1, column=1).value 

#This doesn't work: 
ws1['A2'] = "SomeValue1" 

#This doesn't work either: 
ws1.cell(row=3, column=1).value = "SomeValue2" 

Sono sicuro che il codice sia corretto ... Cosa sta succedendo qui?

risposta

8

Credo che manchi una funzione di salvataggio. Prova ad aggiungere la riga aggiuntiva qui sotto.

from openpyxl import Workbook 
from openpyxl import load_workbook 


wb = load_workbook("testexcel.xlsm") 
ws1 = wb.get_sheet_by_name("Sheet1") 

#This works: 
print ws1.cell(row=1, column=1).value 

#This doesn't work: 
ws1['A2'] = "SomeValue1" 

#This doesn't work either: 
ws1.cell(row=3, column=1).value = "SomeValue2" 

#Add this line 
wb.save("testexcel.xlsm") 
+0

Grazie per la risposta ... ho aggiunto il linea aggiuntiva. Ora visualizzo il seguente messaggio di errore: "IOError: [Errno 13] Autorizzazione negata: 'testexcel.xlsm'" Sembra che non disponga dell'autorizzazione per salvare il file (Perché diavolo no?) –

+0

hai il file Aperto? – Woodsy

+1

Provate a salvarlo con un nome diverso - questa è probabilmente la miglior pratica su un file con macro comunque, poiché li perdete senza conservarli esplicitamente. –

-1

Consente di scrivere un valore:

ws1.cell(row=1, column=1,value='Hey') 

D'altra parte, il seguente comando legge il valore:

ws1.cell(row=1, column=1).value 
Problemi correlati