鱼C论坛

 找回密码
 立即注册
查看: 4268|回复: 6

python3 xlrd 打开excel报错

[复制链接]
发表于 2017-10-27 16:12:09 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 只为 于 2017-10-27 16:13 编辑

代码:
  1. # coding:utf-8
  2. import xlrd

  3. fname = "qc_order.xls"  # 文件名称
  4. bk = xlrd.open_workbook(fname)
  5. sheet1 = bk.sheets()[0]
  6. for i in range(1, 5):
  7.     row_data = sheet1.row_values(i)
  8.     print(i)
复制代码

运行报错:
  1. /usr/bin/python3.5 /home/odoo/odoo-dev/custom_addons/python_learn_test/import_data_qc/iomport_sale_order/import_sale_order.py
  2. Traceback (most recent call last):
  3.   File "/home/odoo/odoo-dev/custom_addons/python_learn_test/import_data_qc/iomport_sale_order/import_sale_order.py", line 16, in <module>
  4.     bk = xlrd.open_workbook(fname)
  5.   File "/home/odoo/.local/lib/python3.5/site-packages/xlrd/__init__.py", line 162, in open_workbook
  6.     ragged_rows=ragged_rows,
  7.   File "/home/odoo/.local/lib/python3.5/site-packages/xlrd/book.py", line 91, in open_workbook_xls
  8.     biff_version = bk.getbof(XL_WORKBOOK_GLOBALS)
  9.   File "/home/odoo/.local/lib/python3.5/site-packages/xlrd/book.py", line 1271, in getbof
  10.     bof_error('Expected BOF record; found %r' % self.mem[savpos:savpos+8])
  11.   File "/home/odoo/.local/lib/python3.5/site-packages/xlrd/book.py", line 1265, in bof_error
  12.     raise XLRDError('Unsupported format, or corrupt file: ' + msg)
  13. xlrd.biffh.XLRDError: Unsupported format, or corrupt file: Expected BOF record; found b' <html x'

  14. Process finished with exit code 1
复制代码


从python2.7 换到python3.5 出现这个问题,怎么排查问题?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-10-27 16:45:44 | 显示全部楼层
好像xlrd模块也分不同版本吧,你从2.7升级到3.5,应该也要更换一下xlrd模块
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-27 16:58:03 | 显示全部楼层
BngThea 发表于 2017-10-27 16:45
好像xlrd模块也分不同版本吧,你从2.7升级到3.5,应该也要更换一下xlrd模块

这个我确认过了,我的这个xlrd 是1.0.0版本,适合python版本为2。7及python3.4+的.

另外发现个问题,是读取的excel的问题,excel源是从html中导出的,报错提示不支持格式,跟这个excel的头
<html xmlns:o="urn:schemas-microsoft-com:office:office"xmlns:x="urn:schemas-microsoft-com:office:excel"xmlns="http://www.w3.org/TR/REC-html40"> 有什么关系吗?知道怎么处理吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-27 17:48:29 | 显示全部楼层
只为 发表于 2017-10-27 16:58
这个我确认过了,我的这个xlrd 是1.0.0版本,适合python版本为2。7及python3.4+的.

另外发现个问题, ...

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

使用道具 举报

发表于 2017-10-27 18:10:50 | 显示全部楼层
import xlrd

workbook = xlrd.open_workbook(u'有趣装逼每日数据及趋势.xls')

sheet_names= workbook.sheet_names()

for sheet_name in sheet_names:

   sheet2 = workbook.sheet_by_name(sheet_name)

   print sheet_name rows = sheet2.row_values(3) # 获取第四行内容

   cols = sheet2.col_values(1) # 获取第二列内容

   print rows

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

使用道具 举报

 楼主| 发表于 2017-10-27 20:21:42 | 显示全部楼层

你这个pip是对于python2的,对python3不起作用,已经用python3 安装了xlrd,不好用,没作用
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-27 20:22:58 | 显示全部楼层
ba21 发表于 2017-10-27 18:10
import xlrd

workbook = xlrd.open_workbook(u'有趣装逼每日数据及趋势.xls')

xlrd.open_workbook('a.xls') 会报错的,不支持的格式,进行不到下面的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-23 13:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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