鱼C论坛

 找回密码
 立即注册
查看: 3478|回复: 5

[已解决]openpyxl模块使用问题

[复制链接]
发表于 2020-9-21 00:58:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

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

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


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

  1. 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.
复制代码


我是把文件转换了下可以

  1. import openpyxl
  2. wb = openpyxl.load_workbook(r'd:\rl.xlsx')
  3. wb.get_sheet_names()
复制代码


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


微信截图_20200921005359.jpg

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

  1. import openpyxl
  2. wb = openpyxl.load_workbook(r'd:\rl.xlsx')
  3. wb.sheetnames()
复制代码


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

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

  7. TypeError: 'list' object is not callable
复制代码


微信截图_20200921005714.jpg

这个好像是没有执行成功

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

谢谢啦



最佳答案
2020-9-21 01:03:15
试试sheetnames不加括号
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-9-21 01:03:15 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
试试sheetnames不加括号
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-21 01:39:30 | 显示全部楼层
hrp 发表于 2020-9-21 01:03
试试sheetnames不加括号

感谢,还真是,,后面多了括号
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-21 01:46:49 | 显示全部楼层
hrp 发表于 2020-9-21 01:03
试试sheetnames不加括号
  1. import openpyxl
  2. wb = openpyxl.load_workbook(r'd:\rl.xlsx')
  3. wb.sheetnames

复制代码

  1. ['A1', 'C1', 'C2', 'C3', 'C地库', 'A地库', 'A2']
复制代码


不加括号可以正常执行

但是 按照教程中   

  1. ws = wb.get_sheet_names('A1')
复制代码


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


一样报错

微信截图_20200921014500.jpg

  1. import openpyxl
  2. wb = openpyxl.load_workbook(r'd:\rl.xlsx')
  3. wb.sheetnames('A1')
复制代码


用这个代码

也是报错
微信截图_20200921014627.jpg

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-21 07:21:41 From FishC Mobile | 显示全部楼层
你确定教程是ws = wb.get_sheet_names('A1')而不是ws = wb.get_sheet_by_name('A1')?你仔细看看是不是看花眼了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-21 10:34:20 | 显示全部楼层
  1. import openpyxl
  2. wb = openpyxl.load_workbook(r'e:\rl.xlsx')
  3. wb.sheetnames
  4. ws = wb.get_sheet_by_name('Sheet1')
复制代码


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

复制代码
微信截图_20200921103241.jpg
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-27 11:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表