openpyxl 'Worksheet' 对象没有属性 'write'(python)

r12*_*597 -1 python excel parsing openxls

对不起我的英语不好。我需要打开一个 xlsx 文档并在最后一个位置写入新值。但我不明白该怎么做。我的算法是这样工作的:

  1. 打开 xlsx l_workbook = load_workbook(old_log_tmp_path)
  2. 从那里获取所有价值

    代码:

    def iter_rows(ws):
        for row in ws.iter_rows():
            yield [cell for cell in row]
    
    Run Code Online (Sandbox Code Playgroud)
  3. 创建新的 xlsm 文件

    代码:

    workbook = xlsxwriter.Workbook(tf.name)
    worksheet = workbook.add_worksheet()
    
    Run Code Online (Sandbox Code Playgroud)
  4. 将所有值复制l_workbookworkbook -> worksheet


但我认为这是不对的,我认为它们以简单的方式存在。像这样:

 l_workbook = load_workbook('EX2cRqM7xi1D.xlsx')
 sheet = l_workbook.get_sheet_names()[0]
 worksheet = l_workbook.get_sheet_by_name(sheet)
 worksheet.write(1, 1, "TEST")
Run Code Online (Sandbox Code Playgroud)

运行该脚本给了我以下错误:

AttributeError: 'Worksheet' object has no attribute 'write'
Run Code Online (Sandbox Code Playgroud)

我的问题是:如何打开 xlsm 文件并向其添加新值(使用 openpyxl)?

更新:

我试试这个代码,但不起作用

import openpyxl

    workbook = openpyxl.load_workbook('tmp3by148hj.xlsx')
    ws = workbook.worksheets[0]

    ws.cell(row=1, column=1).value = 'TEST'
Run Code Online (Sandbox Code Playgroud)

Mik*_*ler 6

您需要写入一个单元格:

worksheet.cell(row=1, column=1).value = 'TEST'
Run Code Online (Sandbox Code Playgroud)

最后保存您的更改:

workbook.save('tmp3by148hj.xlsx')
Run Code Online (Sandbox Code Playgroud)