Python 向 excel 文档添加过多行

Python adding too much rows to excel document

我正在尝试制作将狼蛛物种添加到我的 excel 文档中的应用程序。我正在使用 openpyxl 进行此操作,当我将第二个名称添加到 B 列时,它会将该名称添加 2 次而不是 1 次。这是代码

import openpyxl
import random
import time
wb = openpyxl.load_workbook("sample.xlsx") 

ws = wb.active

def InsertGenus (genus):
    for cellA in ws["A"]:
        if cellA.value is None:
            break
        else:
            print("Empty")
            ws["A"+str(cellA.row + 1)] = genus



def InsertSpecies (species):
    for cellB in ws["B"]:
        if cellB.value is None:
            break
        else:
            print("Empty")
            ws["B"+str(cellB.row + 1)] = species

genus = input("Enter tarantula genus: ")
InsertGenus(genus)
species = input("Enter tarantula species: ")
InsertSpecies(species)


wb.save("sample.xlsx")

input("Press any key to exit...")

我将您的代码稍微重写为一个函数,并使用 max_row+2 来覆盖带有空单元格的基本情况。希望对您有所帮助。

import openpyxl
import random
import time
wb = openpyxl.load_workbook("sample.xlsx") 

ws = wb.active

def InsertTarantula (genus, species):
    for row in range(1, ws.max_row+2):
        if ws.cell(row=row, column=1).value == None and ws.cell(row=row, column=2).value == None:
            #print(ws.cell(row=row, column=1).coordinate, ws.cell(row=row, column=2).coordinate)
            ws.cell(row=row, column=1).value = genus
            ws.cell(row=row, column=2).value = species
            break

genus = input("Enter tarantula genus: ")
species = input("Enter tarantula species: ")
InsertTarantula(genus, species)

wb.save("sample.xlsx")

input("Press any key to exit...")