xiangyuebj 发表于 2020-9-21 00:58:13

openpyxl模块使用问题

本帖最后由 xiangyuebj 于 2020-9-21 01:00 编辑

我是看了《极客Python之效率革命》第二课的视频教程

自己在实际操作中碰到的问题 来此请教


第一个问题,openpyxl模块是不是只能读取xlsx格式的文件,xls的文件读取不了。。

InvalidFileException: openpyxl does not support the old .xls file format, please use xlrd to read this file, or convert it to the more recent .xlsx file format.

我是把文件转换了下可以

import openpyxl
wb = openpyxl.load_workbook(r'd:\rl.xlsx')
wb.get_sheet_names()


输入这段代码之后,出现第二个问题
<ipython-input-22-0724dc066c6f>:3: DeprecationWarning: Call to deprecated function get_sheet_names (Use wb.sheetnames).
wb.get_sheet_names()



这个貌似是执行成功了,,但是好像是提醒要用wb.sheetnames 这个方法

import openpyxl
wb = openpyxl.load_workbook(r'd:\rl.xlsx')
wb.sheetnames()

但是 用这个方法执行又出现了报错

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-21-69cb75eb3fde> in <module>
      1 import openpyxl
      2 wb = openpyxl.load_workbook(r'd:\rl.xlsx')
----> 3 wb.sheetnames()

TypeError: 'list' object is not callable



这个好像是没有执行成功

希望论坛里老大能帮我接待下

谢谢啦



hrp 发表于 2020-9-21 01:03:15

试试sheetnames不加括号

xiangyuebj 发表于 2020-9-21 01:39:30

hrp 发表于 2020-9-21 01:03
试试sheetnames不加括号

感谢,还真是,,后面多了括号

xiangyuebj 发表于 2020-9-21 01:46:49

hrp 发表于 2020-9-21 01:03
试试sheetnames不加括号

import openpyxl
wb = openpyxl.load_workbook(r'd:\rl.xlsx')
wb.sheetnames



['A1', 'C1', 'C2', 'C3', 'C地库', 'A地库', 'A2']

不加括号可以正常执行

但是 按照教程中   

ws = wb.get_sheet_names('A1')


<ipython-input-17-44464b2d431e>:3: DeprecationWarning: Call to deprecated function get_sheet_names (Use wb.sheetnames).
ws = wb.get_sheet_names('A1')

一样报错



import openpyxl
wb = openpyxl.load_workbook(r'd:\rl.xlsx')
wb.sheetnames('A1')

用这个代码

也是报错


hrp 发表于 2020-9-21 07:21:41

你确定教程是ws = wb.get_sheet_names('A1')而不是ws = wb.get_sheet_by_name('A1')?你仔细看看是不是看花眼了{:10_266:}

xiangyuebj 发表于 2020-9-21 10:34:20

import openpyxl
wb = openpyxl.load_workbook(r'e:\rl.xlsx')
wb.sheetnames
ws = wb.get_sheet_by_name('Sheet1')

报错
<ipython-input-10-0e8f2be31436>:4: DeprecationWarning: Call to deprecated function get_sheet_by_name (Use wb).
ws = wb.get_sheet_by_name('Sheet1')

页: [1]
查看完整版本: openpyxl模块使用问题