gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 15:47:51 26 4
gpt4 key购买 nike

我是 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.append(),而是使用 ws.cell() 函数来指定所需的行和列。 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'])

给你:

excel screenshot

<小时/>

请注意,如果每行传递多个单元格,则需要第二个循环。如果您想追加到现有文件,还可以使用 ws.max_row 来给出最后一个现有行的位置:

import openpyxl

xlsx = 'Quotation.xlsx'
wb = openpyxl.load_workbook(xlsx)
ws = wb.active

data = [['a', '1'], ['b', '2']] # new rows to append to existing xlsx

for rowy, row in enumerate(data, start=ws.max_row):
for colx, value in enumerate(row, start=1):
ws.cell(column=colx, row=rowy, value=value)

wb.save(xlsx)

在这种情况下,也可以使用 ws.append(),但是通过使用 ws.cell() 可以让您更好地控制如果需要的话。例如

import openpyxl

xlsx = 'Quotation.xlsx'
wb = openpyxl.load_workbook(xlsx)
ws = wb.active

data = [['a', '1'], ['b', '2']] # new rows to append to existing xlsx

for row in data:
ws.append(row)

wb.save(xlsx)

关于python - 如何使用 Python 在 Excel 中的某些行之后追加一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41606078/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com