You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修正Pandas中‘Book’对象无‘worksheets’属性的错误?

解决Excel工作表信息获取的属性错误问题

你的代码报错是因为xls.book对应的对象类型没有worksheets属性——pandas的ExcelFile会根据文件格式和指定引擎调用不同的库(xlrd或openpyxl),不同库的Book对象结构不一样。下面是两种适配不同文件格式的修正方案:

方案1:处理xls格式文件(用xlrd引擎)

xlrd库的Book对象获取工作表要用sheets()方法,而非worksheets,同时状态获取方式也不同:

xls = pd.ExcelFile(excel_path, engine='xlrd')
sheets = xls.book.sheets()
sheet_states = []
for idx, sheet in enumerate(sheets):
    # xlrd中visibility值:0=可见,1=隐藏,2=非常隐藏
    sheet_states.append([idx, sheet.name, sheet.visibility])
sheet_states_df = pd.DataFrame(sheet_states, columns=["序号", "title", "state"])

方案2:处理xlsx/xlsm格式文件(用openpyxl引擎)

openpyxl库的Workbook对象支持worksheets属性,状态直接取sheet_state:

xls = pd.ExcelFile(excel_path, engine='openpyxl')
sheets = xls.book.worksheets
sheet_states = []
for idx, sheet in enumerate(sheets):
    # openpyxl中sheet_state值:'visible'/'hidden'/'veryHidden'
    sheet_states.append([idx, sheet.title, sheet.sheet_state])
sheet_states_df = pd.DataFrame(sheet_states, columns=["序号", "title", "state"])

注意事项

  • 新版xlrd不再支持xlsx文件,处理xlsx必须指定openpyxl引擎
  • 提前安装依赖库:pip install xlrd openpyxl

内容的提问来源于stack exchange,提问作者yasharov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 08:37:01