如何使用Python在Excel中的某些行之后追加一行

如何使用Python在Excel中的某些行之后追加一行,python,excel,openpyxl,Python,Excel,Openpyxl,我是Python新手。现在只玩openpyxl。 我想用Python编写一个电子表格,但是单元格的格式和样式很复杂,不一定每次都正确 所以我想制作一个模板excel文件,并且总是从文件中读取数据并将其保存为新文件。为此,我必须避免覆盖某些行。目前,我使用该代码在Excel中追加行,因为我不知道要追加的行的大小 有什么方法可以像第7行那样附加某些行中的行吗 我的代码是: def Output(message): wb = Workbook() ws = wb.active

我是Python新手。现在只玩
openpyxl
。 我想用Python编写一个电子表格,但是单元格的格式和样式很复杂,不一定每次都正确

所以我想制作一个模板excel文件,并且总是从文件中读取数据并将其保存为新文件。为此,我必须避免覆盖某些行。目前,我使用该代码在Excel中追加行,因为我不知道要追加的行的大小

有什么方法可以像第7行那样附加某些行中的行吗

我的代码是:

def Output(message):

    wb = Workbook()
    ws = wb.active
    ws.title = 'Quotation'
    Row_size = len(message)
    for i in range (Row_size):
        message_line = message[i]

        ws.append(message_line)

    wb.save('Quatation.xlsx')

使用
ws.cell()
函数指定所需的行和列,而不是使用
ws.append()
enumerate()
可用于为传递列表中的每个条目提供从
7
开始的行号

from openpyxl import Workbook

def Output(message):
    wb = Workbook()
    ws = wb.active
    ws.title = 'Quotation'

    for row, text in enumerate(message, start=7):
        ws.cell(column=1, row=row, value=text)

    wb.save('Quotation.xlsx')

Output(['hello', 'world'])
给你:


注意,如果每行传递多个单元格,则需要第二个循环,如下所示:

from openpyxl import Workbook

def Output(message):
    wb = Workbook()
    ws = wb.active
    ws.title = 'Quotation'
    Row_size = len(message)

    for row, row_entries in enumerate(message, start=7):
        for column, value in enumerate(row_entries, start=1):
            ws.cell(column=column, row=row, value=value)

    wb.save('Quotation.xlsx')

Output([['hello', 'world'], ['this', 'is', 'another', 'line']])

如果你有比写模板更好的主意,也请帮助我。谢谢