最近需要将excel的数据导入到mysql中,用java写比较麻烦,用python导入操作更加方便,对office的版本兼容性很强。
依赖包
import xlrd
具体方法及相关解释
def readExcel(path):
#为文件地址xls和xlsx均可以
try:
# 获取excel工作簿
book = xlrd.open_workbook(path)
print(sys.getsizeof(book))
return book
except Exception as e:
print(e)
print("open excel file failed!")
#获取excel所有sheet表名
sheets = book.sheet_names()
# 通过表名打开表
for sheet in sheets:
sh = book.sheet_by_name(sheet)
#打开表后获取所有行列
rows = sh.nrows
#循环遍历获取每行的值
for row in rows:
# for row in range(1,rows) 从第二行开始获取对应一些有标题情况
#这里的row_data 是个list 对应该行所有的列值
row_data = sh.row_values(row)
在实际使用过程中,会发现python的xlrd可以直接读取xls或者xlsx,但是会遇到一种伪xls文件是无法读取的,这种伪xls一般是xml转的xls 或者是html 传的xls,一般打开会显示扩展名与文件不符,是否继续打开,你用nodepad++ 打开得到的是如图一信息,而不是图二
图1 伪xls文件
图2 正经的xls文件
目前针对这种情况,网上尝试了一下寻找解决办法,但是基本行不通,所以我的办法就是只能手动打开伪xls文件,另存为真正的xls文件,如果有好办法的伙伴们,可以告诉我一下。