【问题标题】:How write to xlsm using openpyxl如何使用 openpyxl 写入 xlsm
【发布时间】:2018-03-29 21:36:22
【问题描述】:

我正在编写这段代码。我的目标是在这个 excel 文件的特定单元格中设置一个值。代码运行正常,没有错误退出,但单元格 A1 保持空白。我该如何解决这个问题?

import openpyxl
wb = load_workbook('Test.xlsm')
ws = wb.worksheets[1]
ws.cell(row=1, column=1).value = 999999
wb.save('Test.xlsm')

【问题讨论】:

    标签: python openpyxl


    【解决方案1】:
    from openpyxl import Workbook
    from openpyxl import load_workbook
    
    wb = load_workbook('Test.xlsm',keep_vba=True)
    ws = wb['Sheet1']
    ws.cell(row=1,column=1).value = 9999999
    wb.save('Test.xlsm')
    

    您需要启用“keep_vba”,因为您正在尝试修改 .xlsm(启用 Excel 宏的工作簿),我不知道为什么,但这似乎可行。

    wb = load_workbook('Test.xlsm',keep_vba=True)
    

    【讨论】:

    • 我真的支持你的回答,但是你有什么想法可以让我输入.cell 一个tuple 包含值而不是插入rowcolumn 的索引,或者有此celldef 的任何文档,请查看此链接 我刚刚发布了一个问题,您可以帮助stackoverflow.com/questions/56963471/…
    【解决方案2】:

    wb = load_workbook('Test.xlsm') 应该是 wb = openpyxl.load_workbook('Test.xlsm') 基于您提供的内容。

    另外,你在看第 2 页吗?线 wb.worksheets[1] 将工作表 2 指定为工作表是零索引的。

    【讨论】:

    • 我刚刚拔掉了线路,但它仍然无法正常工作。我查看了工作表 2,单元格也是空白的。
    • 有趣。我使用更改后的线路运行并且它有效。 sheet here。您正在加载的工作表可能存在问题。
    • 也适合我。 @nel_junior000,但是,您的代码不能按原样工作(如果您是import openpyxl,则必须执行openpyxl.load_workbook),这表明它不是完整的终端会话。您可能想要退出 Python shell,再次运行它并运行这些确切的行进行测试。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-04
    • 1970-01-01
    • 2019-08-04
    • 1970-01-01
    • 2023-01-09
    相关资源
    最近更新 更多