我有一个每周更新数千行的工作表,筛选后需要从该工作表中转移行。我正在使用当前代码查找具有所需值的单元格,然后将整行传输到另一个工作表,但在保存文件后,出现“IndexError:list index out of range”异常。
我使用的代码如下:
import openpyxl
wb1 = openpyxl.load_workbook('file1.xlsx')
wb2 = openpyxl.load_workbook('file2.xlsx')
ws1 = wb1.active
ws2 = wb2.active
for row in ws1.iter_rows():
for cell in row:
if cell.value == 'TrueValue':
n = 'A' + str(cell.row) + ':' + ('GH' + str(cell.row))
for row2 in ws1.iter_rows(n):
ws2.append(row2)
wb2.save("file2.xlsx")
我以前使用的原始代码如下,必须修改,因为大文件导致MS Excel无法打开它们(超过40mb)。
n = 'A3' + ':' + ('GH'+ str(ws1.max_row))
for row in ws1.iter_rows(n):
ws2.append(row)
谢谢。
例如,以下操作可以满足您的需要:
使用Python测试:3.4.2-openpyxl:2.4.1-LibreOffice:4.3.3.2
使用列表保存特定行的每列中的项。 然后将列表附加到ws2中。
我不完全确定您要做什么,但我怀疑问题是您嵌套了复制循环。
请尝试以下操作:
相关问题 更多 >
编程相关推荐