簡體   English   中英

使用Openpyxl將內容粘貼到Excel中時,如何跳過一個或多個單元格?

[英]How to skip one or more cells when pasting content into an Excel by using Openpyxl?

我正在嘗試將文本粘貼到現有Excel的列中。 但是,我需要跳過所有突出顯示的單元格。 例如:

content.txt
1個
2
3
4
5

workbook.xlsx應該看起來像
在此處輸入圖片說明

以下是我到目前為止的代碼:

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()

結果將是: 在此處輸入圖片說明 (txt line也被跳過...)

讓我知道您是否有任何想法。 我是否應該使用while循環...? 謝謝!!

for循環中添加if語句

r = 1
for 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 += 1
f.close()

另外,您在此處發布的代碼中r+=1缺少縮進。

好的,我在@Ash Sharma的幫助下得到了答案!

該代碼對我有用:

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=1).fill.bgColor.value != '00000000':
    # '00000000' corresponds to no fill
       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()

wb.save('test_Result.xlsx')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM