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

时间:2018-01-31 08:12:43

标签: 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]
    
  3. 创建新的xlsm文件

    代码:

    workbook = xlsxwriter.Workbook(tf.name)
    worksheet = workbook.add_worksheet()
    
  4. 将所有值从l_workbook复制到workbook -> worksheet

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

     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")
    

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

    AttributeError: 'Worksheet' object has no attribute 'write'
    

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

    UPD:

    我尝试使用此代码,但无法正常工作

    import openpyxl
    
        workbook = openpyxl.load_workbook('tmp3by148hj.xlsx')
        ws = workbook.worksheets[0]
    
        ws.cell(row=1, column=1).value = 'TEST'
    

1 个答案:

答案 0 :(得分:2)

你需要写入一个单元格:

worksheet.cell(row=1, column=1).value = 'TEST'

最后保存您的更改:

workbook.save('tmp3by148hj.xlsx')