excel 使用openpyxl写入行?

rvpgvaaj  于 2022-11-26  发布在  其他
关注(0)|答案(3)|浏览(212)

我尝试使用openpyxl在Python中为一行写一个列表,但是没有用。
例如,该列表包含十个值。我需要打开一个现有的工作表,并将这十个值沿着一行写入各自的单元格。
我需要使用openpyxl,因为它的功能覆盖现有的工作表相比,xlsxwriter,其中您只能创建新的工作表。

txu3uszq

txu3uszq1#

看一看here,向下滚动到标题将值写入单元格
TLDR:

>>> import openpyxl
>>> wb = openpyxl.Workbook()
>>> sheet = wb['Sheet']
>>> sheet['A1'] = 'Hello world!'
>>> sheet['A1'].value
'Hello world!

或者如果你愿意

sheet.cell(row=2, column=3).value = 'hello world'

更新:根据@charlieclark注解,thx更改为wb ['Sheet']语法
更新:将mylist写入第2行

for col, val in enumerate(mylist, start=1):
    sheet.cell(row=2, column=col).value = val
e0bqpujr

e0bqpujr2#

我为你做了一个函数。我在我电脑上的一个“openpyxlutils”文件中有它。它允许你把起始行的字母或数字(但字母不能像AA或BB)。

def write_row(write_sheet, row_num: int, starting_column: str or int, write_values: list):
    if isinstance(starting_column, str):
        starting_column = ord(starting_column.lower()) - 96
    for i, value in enumerate(write_values):
        write_sheet.cell(row_num, starting_column + i, value)
g9icjywg

g9icjywg3#

import openpyxl as xl
wb = xl.Workbook()
ws = wb.active
mylist = ['dog', 'cat', 'fish', 'bird']
ws.append(mylist)
wb.save('myFile.xlsx')
wb.close()

相关问题