我正在尝试迭代“ new.xlsx”中的字母列,如果字母存在于“ original.xlsx”中,请复制数据并将其粘贴到new.xlsx中。 以下代码是我所做的。
import openpyxl
dappend = openpyxl.load_workbook('C:/Users/User/Desktop/original.xlsx', data_only=True)
dp1 = dappend.active
consider = openpyxl.load_workbook('C:/Users/User/Desktop/new.xlsx', data_only=True)
cd1 = consider.active
li2 = []
for c in range(2,cd1.max_row+1):
name = cd1.cell(row=c,column=4).value
for d in range(2,dp1.max_row+1):
if cd1.cell(row=c,column=4).value == dp1.cell(row=d,column=4).value:
li2=[dp1.cell(row=d,column=4).value,dp1.cell(row=d,column=5).value,dp1.cell(row=d,column=6).value,dp1.cell(row=d,column=7).value]
print(li2)
d = d + 1
else:
continue
c = c + 1
我的输出是:
['A', None, 'Jonathan', None]
['A', '', 'Jonathan', '']
['B', None, 'Cassandra', None]
['B', None, 'Rose', None]
['B', 'Tyler', None, None]
['B', '', 'Cassandra', '']
['B', '', 'Rose', '']
['B', 'Tyler', '', '']
['C', 'Sam', None, None]
['C', 'Sam', '', '']
['D', 'Jeremy', None, None]
['D', 'Jeremy', '', '']
但是我希望输出像...
['A', '', 'Jonathan', '']
['B', '', 'Cassandra', '']
['B', '', 'Rose', '']
['B', 'Tyler', '', '']
['C', 'Sam', '', '']
['D', 'Jeremy', '', '']
请帮助...
答案 0 :(得分:0)
首先发表评论:c = c + 1和d = d + 1行什么都不做,因为在循环的开头,它们被重新定义为列表中的下一项:range(2,5)=(2, 3,4)
现在为您解决: 我建议您在打印命令之前添加一个if
if None in li2 :
# do nothing
else:
print(li2)