使用Openpyxl将内容粘贴到Excel中时,如何跳过一个或多个单元格?

我正在尝试将文本粘贴到现有Excel的列中。但是,我需要跳过所有突出显示的单元格。例如:

content.txt
1
2
3
4
5

workbook.xlsx应该看起来像

http://img3.mukewang.com/607e3df5000156c903070490.jpg

以下是我到目前为止的代码:


import os, openpyxl

f = open("content.txt", mode="r+")

wb = openpyxl.load_workbook(filename = 'workbook.xlsx')

worksheet = wb.active


r = 1

for line in f.readlines():

    if worksheet.cell(row=r, column=9).fill.bgColor.value != '00000000':

        r+=1

        worksheet.cell(row=r, column=1).value = line

        r+=1

        continue

    else:

        worksheet.cell(row=r, column=1).value = line

        r += 1

f.close()

但它只跳过突出显示的一行。尽管如此,我仍在设法弄清楚。


或者,如果我编写这样的代码:


import os, openpyxl

f = open("content.txt", mode="r+")

wb = openpyxl.load_workbook(filename = 'workbook.xlsx')

worksheet = wb.active


r = 1

for line in f.readlines():

    if worksheet.cell(row=r, column=9).fill.bgColor.value != '00000000':

       r+=1

       continue

    else:

        worksheet.cell(row=r, column=1).value = line

    r += 1

f.close()

结果将是:( http://img.mukewang.com/607e3e110001aab802550398.jpg该txtline也会被跳过...)

让我知道您是否有任何想法。我是否应该使用while循环...?谢谢!!


拉莫斯之舞
浏览 242回答 2
2回答

慕田峪4524236

if在for循环中添加一条语句r = 1for line in f.readlines():    if worksheet.cell(row=r, column=1).fill.bgColor.value != '00000000':    # '00000000' corresponds to no fill       continue    worksheet.cell(row=r, column=1).value = line    r += 1f.close()另外,r+=1您在此处发布的代码中缺少缩进。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python