【问题标题】:Writing data into Excel-Sheet using openpyxl isn't working使用 openpyxl 将数据写入 Excel-Sheet 不起作用
【发布时间】:2015-04-27 16:47:53
【问题描述】:

使用openpyxl,我正在尝试从 Excel 工作簿读取数据并将数据写入同一个 Excel 工作簿。从 Excel-Workbook 获取数据工作正常,但将数据写入 Excel-Workbook 不起作用。使用下面的代码,我从 Sheet1 中的 Cell A1 获取值并打印它。然后我尝试将一些值放入单元格A2 和A3。这不起作用。

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"

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

【问题讨论】:

    标签: python excel openpyxl


    【解决方案1】:

    我相信您缺少保存功能。尝试在下面添加附加行。

    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")
    

    【讨论】:

    • 感谢您的回答...我添加了附加行。现在我收到以下错误消息:“ IOError: [Errno 13] Permission denied: 'testexcel.xlsm'” 似乎我没有保存文件的权限(为什么没有?)
    • 文件打开了吗?
    • 尝试以不同的名称保存它——这可能是带有宏的文件的最佳做法,因为如果不明确保留它们,您将丢失它们。
    • 我现在使用了“wb.save("testexcel2.xlsm")”这一行,而不是“wb.save("testexcel.xlsm")”。不再有立即的错误消息(来自 Shell)。但是,当我尝试通过双击打开新创建的文件“testexcel2.xlsm”时,收到以下错误消息:“Excel 无法打开文件 'testexcel2.xlsm',因为文件格式或文件扩展名不是有效。验证文件没有损坏,并且文件扩展名与文件格式匹配。"
    • 非常感谢您的回答! ...我现在尝试了 "wb = load_workbook("testexcel.xlsm", keep_vba=True )" ... 现在它可以工作了。
    【解决方案2】:

    用这个写一个值:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-18
      • 1970-01-01
      • 1970-01-01
      • 2020-07-25
      • 1970-01-01
      • 2023-01-09
      • 1970-01-01
      • 2017-09-06
      相关资源
      最近更新 更多