前车之鉴,后车之师。
** 另类的xls的表格获取**
今天同事请教了一个问题,说是有一个为 xls 的表格,用控件,xlrd 都无法获取值。
我表示惊讶,用 xlrd,openpyxl 进行读取,都报了如下的错误:
格式错误,大概意思就是期望的是 BOF 开头记录,但是读到的是’\xef\xbb\xbf<?xml’ 。通常 Unsupported format 是因为 Excel 文件里有不能读取的字符引起的。
而我这里读到’\xef\xbb\xbf<?xml’字符,有 XML,怀疑文件本身可能就不是 XML,用简单的读文件方法读文件或简单把后缀改成 XML,可以看出,果然是一个 XML 文件。
下图是特殊情况:
下图为一般情况:
后来试着把原来的.XLS 文件另存为文件为.XLSX 后缀的,结果还是报错。手动另存为文件的话倒是可以正常打开。不过过程较为繁琐。
最后我试了一下 xlwings 模块。可以正常的对 excel 进行数值的获取。
import xlwings as xw
app = xw.App(visible=False,add_book=False)
data = app.books.open(r"C:\Users\lwj\Desktop\1554363640050.xls")
sht = data.sheets['基本信息']
a = sht.range('b2:b2').value
print('获取的值',a)
下图是获取的结果:
希望对大家能带来帮助,谢谢!
👍
非常棒,关键之处:
xlwings
本质上是使用 office,不解析文件xlrd
本质上是自行解析文件格式标题党 😂 😂 😂 我以为啥呢,逼着我进来浏览一下哈哈
不过 excel 的这种小问题还是挺常见的👍
你咋不用 pandas 读
学习了
眼,小本本记下