python openpyxl 读取xls 解决方案
如题,对xlrd 不喜欢,太繁琐(就是不会)然后上次发现了openpyxl 用起来很简洁,好用,但是发现不支持xls 怎么办呢???那就很好解决了,把xls 另存为xlsx 然后删掉 xls 就行了,然后用openpyxl 读取xlsx文件report = os.path.join(test_report_path(), payroll_name + '.xls')impo...
·
如题,对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文件名与源文件一摸一样,只是后缀不同
更新时间--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,,,
更多推荐
已为社区贡献1条内容
所有评论(0)