2015-04-27 22 views
5

Używając openpyxl, próbuję odczytać dane ze skoroszytu programu Excel i zapisywać dane w tym samym skoroszycie programu Excel. Pobieranie danych z skoroszytu programu Excel działa dobrze, ale zapisywanie danych w skoroszycie programu Excel nie działa. Za pomocą poniższego kodu otrzymam wartość z komórki A1 w Sheet1 i wydrukuję ją. Następnie próbuję umieścić pewne wartości w komórkach A2 i A3. To nie działa.Zapisywanie danych w arkuszu Excela przy użyciu openpyxl nie działa

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" 

Jestem pewien, że kod jest poprawny ... Co się tutaj dzieje?

Odpowiedz

8

Uważam, że brakuje wam funkcji składowania. Spróbuj dodać dodatkową linię poniżej.

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

Dziękuję za odpowiedź ... I dodaje dodatkowa linia. Teraz pojawia się następujący komunikat o błędzie: "IOError: [Errno 13] Odmowa uprawnień:" testexcel.xlsm "" Wygląda na to, że nie mam uprawnień do zapisania pliku (Dlaczego, do cholery, nie?) –

+0

czy masz plik otwarty? – Woodsy

+1

Spróbuj zapisać go pod inną nazwą - to prawdopodobnie najlepsza praktyka w przypadku plików z makrami, ponieważ utracisz je bez wyraźnego ich zachowania. –

-1

Użyj tego napisać wartość:

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

Z drugiej strony, co następuje odczyta wartość:

ws1.cell(row=1, column=1).value 
Powiązane problemy