【问题标题】:read and write in excel file with python用python在excel文件中读写
【发布时间】:2017-07-07 13:27:31
【问题描述】:

我正在尝试在 python 中读取 excel 文件的单元格,更改其值并保存它。如果我在代码中没有from xlutils.copy import copy 行,它会识别workbook.sheeets(),否则会显示

    AttributeError: 'Workbook' object has no attribute 'sheets'

这是我的代码:

    from xlutils.copy import copy

    import xlrd
    st = xlwt.easyxf('pattern: pattern solid;')
    rb = xlrd.open_workbook('00-17.xlsx')

    workbook = copy(rb)
    for sheet in workbook.sheets():
        for row in range(sheet.nrows):

            current_value = sheet.cell(row,3).value
            if(current_value == '1' ) :
                st.pattern.pattern_fore_colour = 5

                for column in [0,2,3]:
                    value = sheet.cell(row, column).value

                    print value
                    sheet.write(row, column, value,st)
    workbook.save('1.xlsx') 


【问题讨论】:

  • 错误是什么?
  • AttributeError:“工作簿”对象没有属性“get_sheet_by_name”
  • 您可能想先阅读xlrd 的文档。按名称访问工作表的方法是.sheet_by_name 而不是.get_sheet_by_name。此外,要获取行数,只需使用 sheet.nrows
  • 看起来好像在混合 xlwt 和 openpyxl。
  • 你可以试试这个阅读表的替代方法: sheet_names = xl_workbook.sheet_names() xl_sheet = xl_workbook.sheet_by_name(sheet_names[0])

标签: python excel xlrd xlwt


【解决方案1】:

我相信您可能必须先使用 load_workbook() 方法。查看链接Print Excel workbook using python 可能会有所帮助。

您可以尝试使用workbook = xlrd.open_workbook('00-17.xlsx') 并删除workbook = copy(rb) 行吗?

【讨论】:

  • 我的 python 的 load_workbook() 有问题,因为它没有找到基础包(虽然我安装了它)。你能看看我的更新吗?
  • 您可以尝试使用workbook = xlrd.open_workbook('00-17.xlsx') 并删除workbook = copy(rb) 行吗?
猜你喜欢
  • 1970-01-01
  • 2013-08-09
  • 2021-08-30
  • 2011-08-12
  • 1970-01-01
  • 2014-12-05
  • 2011-12-02
  • 1970-01-01
  • 2013-06-21
相关资源
最近更新 更多