我是编程新手。我试图将列从一个excel工作表复制到另一个excel工作表,但我的代码有问题,因为只有最后一列数据被复制到目标文件。我已经附上了代码和我一直得到的结果
Jan_2020 ="C:\\Users\\yaxee\\OneDrive\\Desktop\\NBET
Extraction data\\JANUARY 2020.xlsx"
wb1 = xl.load_workbook(Jan_2020)
ws1 = wb1.worksheets[0]
Extraction_WB ="C:\\Users\\yaxee\\OneDrive\\Desktop\\ExtractionWB.xlsx"
wb2 = xl.load_workbook(Extraction_WB)
ws2 = wb2.worksheets[0]
#copy from wb1
for i in range(4, 34):
c = ws1.cell(row = i, column = 4)
#paste in ws2
for j in range(3, 33):
ws2.cell(row = j, column = 4).value = c.value
wb2.save(str(Extraction_WB))
你不需要两个循环。您只是不断重写
c
的值,直到它具有列的最后一个值然后,您只需将该值写入第二张工作表的所有行
相反,使用一个循环,从当前行读取单个值,并将其写入第二张工作表中的相应行:
如果在图纸之间有一些常规转换,则可以采用以下更通用的方法:
如果我理解您的需要,您需要将第二个循环放在第一个循环中,以便复制整个行范围。这样行吗?韩元
相关问题 更多 >
编程相关推荐