2015-04-27 2 views
5

Используя openpyxl, я пытаюсь читать данные из книги Excel-Workbook и записывать данные в эту же книгу Excel-Workbook. Получение данных из Excel-Workbook отлично работает, но запись данных в книгу Excel-Workbook не работает. С приведенным ниже кодом я получаю значение от Cell A1 в Sheet1 и распечатаю его. Затем я пытаюсь поместить некоторые значения в ячейки A2 и A3. Это не работает.Запись данных в Excel-лист с помощью openpyxl не работает

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" 

Я уверен, что код верен ... Что здесь не так?

ответ

8

Я считаю, что вам не хватает функции сохранения. Попробуйте добавить дополнительную строку ниже.

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

Спасибо за ответ ... Я добавил дополнительная линия. Теперь я получаю следующее сообщение об ошибке: «IOError: [Errno 13] Permission denied: 'testexcel.xlsm'" Похоже, у меня нет разрешения на сохранение файла (почему, черт возьми, нет?) –

+0

У вас есть файл открытый? – Woodsy

+1

Попробуйте сохранить его под другим именем - это, вероятно, лучшая практика в файле с макросами, так как вы потеряете их, не сохраняя их явно. –

-1

Используется для записи значения:

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

С другой стороны, следующий будет считывать значение:

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