【发布时间】:2020-04-09 22:03:59
【问题描述】:
我正在尝试将基于行坐标的一系列数据从一个工作表复制到另一个工作表。
我有一个行坐标列表
tbrow = [1, 34, 52, 75, 101]
我想做的是从以下位置复制行范围:
从工作表 0 到工作表 1 的 1 到 34,
从表 0 到表 2 的 34 到 52,
52 到 75 从工作表 0 到工作表 3,
从工作表 0 到工作表 4 的 75 到 101。
到目前为止,我尝试了以下内容:
-获取主表0
sheet0 = wb["Sheet"]
然后我将表格存储在一个变量中,忽略第一张表格
sheets = wb.worksheets[1:]
最后,我尝试复制给定的值。
for i in range(tbrow[i],tbrow[i]+1)
for j in range(1,sheet0.max_column+1):
for k in sheets:
k.cell(row=i, column=j).value = sheet0.cell(row=i, column=j).value
问题是我只将第一行复制到其余工作表而不是整个范围。 (1-34;34-52 等等) 我错过了什么?
谁能帮我在这里组织一个逻辑?或者提供解决方案?
谢谢!
更新
另一种方法是对列表进行切片。
a,b = tbrow[:2]
for i in range(a,b):
for j in range(1,sheet1.max_column+1):
for k in sheets: k.cell(row=i, column=j).value = sheet1.cell(row=i, column=j).value
但这只需要列表中的前两行坐标,我想转到列表中的下一项:
-从第一到第二
-从第二个到第三个
-从第三到第四
...等等——
【问题讨论】: