如题,对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,,,

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐