【发布时间】: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])