前言
Openpyxl 在处理起excel表格是非常方便的。然而,openpyxl只支持xlsx文件的处理,并不能支持xls文件。又不想换第三方库,又想处理xls文件,于是想了个折中的方法,那就是将xls文件转换成xlsx文件。再用openpyxl进行处理。
代码如下:
def xls2xlsx(file_name):
"""
将xls文件另存为xlsx文件
:param file_name: 要转换的文件路径
:returns: new_excel_file_path 返回新的xlsx文件的路径
"""
excel_file_path = file_name
import win32com.client
excel = win32com.client.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Open(excel_file_path)
new_excel_file_path = r"{old_file_path}x".format(old_file_path=excel_file_path)
if os.path.exists(new_excel_file_path): # 先删掉新复制的文件
os.remove(new_excel_file_path)
wb.SaveAs(new_excel_file_path, FileFormat=51)# 51 表示的是xlsx格式
wb.Close()
excel.Application.Quit()
return new_excel_file_path
该函数在调用之后返回新生成的xlsx文件的路径
把新生成的文件再用openpyxl库进行处理。