Ric*_*ang 4 python excel openpyxl
我是Python新手。这几天刚玩openpyxl。我想使用 Python 编写一个电子表格,但是单元格的格式和样式很复杂,并且不一定每次都正确。
所以我正在考虑制作一个模板 Excel 文件,并始终从该文件中读取并将其另存为新文件。为此,我必须避免覆盖某些行。目前,我使用代码在 Excel 中附加行,因为我不附加大小。
有什么方法可以附加特定行(例如第七行)中的行吗?
我的代码是:
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')
Run Code Online (Sandbox Code Playgroud)
不使用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'])
Run Code Online (Sandbox Code Playgroud)
给你:
请注意,如果每行传递多个单元格,则需要第二个循环。如果您想追加到现有文件,您还可以使用ws.max_row给出最后一个现有行的位置:
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'])
Run Code Online (Sandbox Code Playgroud)
在这种情况下,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 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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9513 次 |
| 最近记录: |