使用openpyxl将数据写入Excel工作表不起作用

ste*_*ess 6 python excel openpyxl

使用openpyxl,我试图从Excel工作簿中读取数据并将数据写入同一个Excel工作簿.从Excel-Workbook获取数据工作正常,但将数据写入Excel-Workbook不起作用.使用下面的代码,我从Cell A1中获取值Sheet1并打印出来.然后,我尝试把一些值进入细胞A2A3.这不起作用.

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"
Run Code Online (Sandbox Code Playgroud)

我确信代码是正确的......这里出了什么问题?

Woo*_*dsy 10

我相信你缺少一个保存功能.尝试添加以下附加行.

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")
Run Code Online (Sandbox Code Playgroud)

  • 非常感谢您的回答!...我现在尝试了“wb = load_workbook("testexcel.xlsm", keep_vba=True )”...现在它可以工作了。 (2认同)

小智 6

用它来写入一个值:

ws1.cell(row=1, column=1,value='Hey')
Run Code Online (Sandbox Code Playgroud)

另一方面,以下将读取该值:

ws1.cell(row=1, column=1).value 
Run Code Online (Sandbox Code Playgroud)