使用 python xlwings 在 excel 文件中每个循环的下一行插入数据

问题描述 投票:0回答:1

我想自动化当前比较数据的过程。

基本上我想保存每个循环的数据,并且每个循环都会将数据插入到另一行。

到目前为止,它只会替换数据,而不是将其插入到另一行。

这是我当前的代码。


loadfile1 = pd.read_excel(File1)
loadfile2 = pd.read_excel(File2)

l = loadfile1.values.tolist()
m = loadfile2.values.tolist()

A = wx.Book(CompFile)

for row in l:
    if row in m:
        print('passed')
        sheet = A.sheets['Source']
        sheet.range('A1').value = row

是否可以每次循环插入数据,它只会将数据插入到另一行

python excel xlwings
1个回答
0
投票

当然有可能。
您的代码当前在每个循环上写入相同的单元格,因此它只是覆盖 您可以通过多种方式执行此操作,但最简单的方法是简单地使用一个行号变量,该变量在写入行时递增。
在示例中,我假设

wx
是 Xlwings 对象。变量“row_number”用作要写入“row”数据的当前行。 'row_number' 设置为从 1(第 1 行)开始,如有必要,可以将起始行设置为其他值。然后,如果将一行写入 row_number,则 row_number 会增加 1,因此下一次写入将写入下一行。

...
A = wx.Book(CompFile)
### The Sheet object does not need to be set every time in the loop, thus 
### it can be removed from and set before the loop
sheet = A.sheets['Source']  

### Start writing from row 1 change if writing from another row
row_number = 1

for row in l:
    if row in m:
        print('passed')
        ### Use f string to create the cell co-ordinate using row_number
        sheet.range(f'A{row_number}').value = row
        row_number += 1  # Increment the row_number for the next write

A.save()  # Don't forget to save the workbook
© www.soinside.com 2019 - 2024. All rights reserved.