使用Python模块xlwt,两次写入同一个单元格会引发错误:
Message File Name Line Position
Traceback
<module> S:\********
write C:\Python26\lib\site-packages\xlwt\Worksheet.py 1003
write C:\Python26\lib\site-packages\xlwt\Row.py 231
insert_cell C:\Python26\lib\site-packages\xlwt\Row.py 150
Exception: Attempt to overwrite cell: sheetname=u'Sheet 1' rowx=1 colx=12
使用以下代码片段
def insert_cell(self, col_index, cell_obj):
if col_index in self.__cells:
if not self.__parent._cell_overwrite_ok:
msg = "Attempt to overwrite cell: sheetname=%r rowx=%d colx=%d" \
% (self.__parent.name, self.__idx, col_index)
raise Exception(msg) #row 150
prev_cell_obj = self.__cells[col_index]
sst_idx = getattr(prev_cell_obj, 'sst_idx', None)
if sst_idx is not None:
self.__parent_wb.del_str(sst_idx)
self.__cells[col_index] = cell_obj
看起来代码中有一个 'raise' 引发了异常,这会停止整个进程。只删除 'raise' 一词就足以允许覆盖单元格吗?我欣赏 xlwt 的警告,但我认为 Pythonic 的方式是假设“我们知道我们正在做什么”。我不想在接触模块时破坏其他任何东西。
add_sheet
的情况下使用它吗?我正在使用xlutils.copy
中的copy
复制电子表格以复制工作簿,然后使用get_sheet
获取工作簿中的第一个工作表。当我在上述方法中传递参数时,我一直收到“意外的关键字参数”。 - turnip