Python 在Openpyxl中,如何用工作表中的单元格对象替换单元格?

Python 在Openpyxl中,如何用工作表中的单元格对象替换单元格?,python,openpyxl,Python,Openpyxl,所以我有一个函数,它取一个单元格对象,然后吐出一个经过处理的单元格: from openpyxl.cell.cell import Cell cell = Cell(ws) def process_cell(cell): # Add style to cell return cell 但是我不能这样做: cell = process_cell(cell) ws['A1'] = cell 错误是: raise ValueError("Invalid column index

所以我有一个函数,它取一个
单元格
对象,然后吐出一个经过处理的
单元格

from openpyxl.cell.cell import Cell
cell = Cell(ws)

def process_cell(cell):
    # Add style to cell
    return cell
但是我不能这样做:

cell = process_cell(cell)
ws['A1'] = cell
错误是:

raise ValueError("Invalid column index {0}".format(idx))
ValueError: Invalid column index None
问题是:
cell=cell(ws)


这将创建一个绑定到特定工作表的单元格,但没有必须提供的任何坐标。如果您处于只写模式,那么您必须使用一个
WriteOnlyCell
,并将其传递到工作表的
append()
方法。

您能不能不仅仅
处理单元格(ws['A1'])
?它应该更改
ws['A1']
中的
样式,因为它是一个对象引用,而不是一个值。似乎您试图将实际的
单元格
对象
ws.Cell(1,1)
替换为已处理的
单元格
对象,我认为这可能是错误的方法。您将使用默认的
单元格
属性替换所有有价值的
单元格
属性,因为您只提供了最小的
工作表
参数。
。。。etc属性将全部为空,因此单元格基本上会被擦除,除了在
进程中显式添加的属性\u cell
。您可以像这样强制替换
单元格
对象。_cells[1,1]=单元格
,但最终会丢失现有单元格中的所有信息。您应该只更改
ws.cell(1,1)
对象,而不是指定一个新对象。请阅读如何更改
cell
样式。我在openpyxl教程中提供了一个示例:。在writeOnlyCell示例中,它使用生成器将单元格样式应用于行中的每个单元格。它
将生成器附加到工作表中。工作表变量
ws
仅在创建生成器时提供。将行追加到工作表中没有问题。我尝试了一个常规的
单元格
,它与
追加
配合得很好。我就是不能更换一个电池。