python openpyxl 读取xls 解决方案

如题,对xlrd 不喜欢,太繁琐(就是不会)

然后上次发现了openpyxl 用起来很简洁,好用,但是发现不支持xls 怎么办呢???

那就很好解决了,把xls 另存为xlsx 然后删掉 xls 就行了,然后用openpyxl 读取xlsx文件 

def replace_excel(folder_path, file_name):
    """
    excel  .xls 后缀 改成 .xlsx 后缀
    folder_path 文件夹路径
    file_name 文件名字 带后缀 比如 aa.xls
    """
    name, suffix = file_name.split('.')
    excel_file_path = os.path.join(folder_path, file_name)
    import win32com.client
    excel = win32com.client.gencache.EnsureDispatch('Excel.Application')  # 要看MIME手册
    wb = excel.Workbooks.Open(excel_file_path)
    suffix = f".{suffix}x"
    new_file_name = f"{name}{suffix}"
    new_excel_file_path = os.sep.join([folder_path, new_file_name])
    wb.SaveAs(new_excel_file_path, FileFormat=51)
    wb.Close()
    excel.Application.Quit()
    os.remove(excel_file_path)
    return new_excel_file_path

openpyxl 

excel_path = replace_excel(folder_path, file_name)
wb1 = load_workbook(filename=excel_path )
sheets = wb1.sheetnames  # 获取所有的表格
print(sheets)
sheets_first = sheets[0]  # 获取第一个表
ws1 = wb1[sheets_first]
print(ws1['A1'].value)
assert money == ws1['F2'].value, "下载文件内容显示不正确"
os.remove(excel_path )

由于那啥,我是直接从firefox 下载的xls文件

上面是我的下载地址

新转换的xlsx文件名与源文件一摸一样,只是后缀不同

MIME手册

更新时间--2022年10月24日--

最近在看 xlwings

import xlwings as xw
import os


def replace_excel(file_path):
    """
    file_path = r'C:\Users\FH\Desktop\test\test.xls'
    """
    app = xw.App(visible=True, add_book=False)
    example = app.books.open(file_path)
    example.save(f"{file_path}x")
    example.close()
    app.quit()
    os.remove(file_path)

这样实现的好处就是 不需要看MIME手册,更python,,但是还是不支持centos,,,

  • 6
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 35
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 35
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值