openpyxl: AttributeError: 'MergedCell' 对象属性 'value' 是只读的

新手上路,请多包涵

当我尝试填充现有 .xlsx 文件中的单元格,然后将其保存到新文件时,我收到消息:

 import openpyxl

path = "/home/karol/Dokumenty/wzor.xlsx"
wb_obj = openpyxl.load_workbook(path)
sheet_obj = wb_obj.active
new_protokol = sheet_obj

firma = input("Podaj nazwe: ")
nazwa_pliku = "Protokol odczytu"
filename = nazwa_pliku + firma + ".xlsx"

sheet_obj["C1"] = firma
sheet_obj["D1"] = input()

new_protokol.save(filename=filename)

 Traceback (most recent call last):
  File "/home/karol/PycharmProjects/Protokolu/Main.py", line 16, in <module>
    sheet_obj["C1"] = firma
  File "/home/karol/PycharmProjects/Protokolu/venv/lib/python3.7/site-packages/openpyxl/worksheet/worksheet.py", line 309, in __setitem__
    self[key].value = value
AttributeError: 'MergedCell' object attribute 'value' is read-only

Process finished with exit code 1

如何解决?

原文由 zumber 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 4.8k
1 个回答

当您合并单元格时,除了左上角的单元格之外的所有单元格都将从工作表中删除。为了携带合并单元格的边界信息,合并单元格的 边界单元 格被创建为 MergeCells,其值始终为 'None'

 ws.merge_cells('B2:F4')
top_left_cell = ws['B2']
top_left_cell.value = "My Cell"

请尝试这种方法,它对您来说效果很好。

原文由 imujjwalanand 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题