python库安装
所需python库 - spire.xls for python。该python库支持多种对excel文档的编程操作,包括创建、读取、编辑、转换等。可以通过此链接下载产品包后再从本地路径安装,也可以直接使用以下pip命令安装:
pip install spire.xls
xls格式与xlsx格式互转
xlsx格式因其基于xml的结构、更强大的功能支持和安全性,成为现代excel文件处理的首选格式。而xls格式则因其在较旧版本的excel中的兼容性和特定功能的使用而仍有其特定的应用场景。
要使用python在这两种格式件实现灵活转换,参考以下步骤:
- 创建 workbook 工作簿对象;
- 使用 loadfromfile() 方法加载 .xls 或 .xlsx文件;
- 使用 savetofile(filename, version) 方法实现转换。
代码示例如下:
python 将xls转为xlsx
from spire.xls import * from spire.xls.common import * # 加载xlsx文件 workbook = workbook() workbook.loadfromfile("示例.xlsx") # 将xlsx文件另存为xls格式 workbook.savetofile("xlsx转xls.xls", excelversion.version97to2003) workbook.dispose()
python 将xlsx转为xls
from spire.xls import * from spire.xls.common import * # 加载xls文件 workbook = workbook() workbook.loadfromfile("示例.xls") # 将xls文件另存为xlsx格式 workbook.savetofile("xls转xlsx.xlsx", excelversion.version2016) workbook.dispose()
拓展:实现excel文件xls与xlsx格式批量互相转换
python实现方法
将文件夹中的所有xls或xlsx文件转换为xlsx或xls文件
import win32com.client as win32 # 需安装pywin32 import os.path import glob excel = win32.gencache.ensuredispatch('excel.application') #简易使用方法 #filename = r'e:\xlsx\1.xls' #wb = excel.workbooks.open(filename) #wb.saveas(filename+'x', fileformat=51) #fileformat=51 是 .xlsx 的扩展 #wb.close() #fileformat=56 是 .xls 的扩展 #excel.application.quit() def xls2xlsx(xls_path, xlsx_path): # xls_path参数为待转换的xls文件所在文件夹 # xlsx_path参数为转换完成的xlsx文件保存文件夹 # 当xlsx保存文件夹存在同名原xls时,会弹窗提示是否替换,建议保存至空文件夹 path_list = glob.glob(xls_path + '\\*.xls') # 获取文件夹下所有xls for file in path_list: filename = os.path.basename(file).replace('.xls', '.xlsx') # 获取文件名 wb = excel.workbooks.open(file) wb.saveas(xlsx_path + '\\' + filename, fileformat=51) # xlsx为51 wb.close() excel.application.quit() print('xls2xlsx转换完成') def xlsx2xls(xlsx_path, xls_path): # xlsx_path参数为待转换的xlsx文件所在文件夹 # xls_path参数为转换完成的xls文件保存文件夹 # 当xls保存文件夹存在同名原xlsx时,会弹窗提示是否替换,建议保存至空文件夹 path_list = glob.glob(xlsx_path + '\\*.xlsx') # 获取文件夹下所有xlsx for file in path_list: filename = os.path.basename(file).replace('.xlsx', '.xls') # 获取文件名 wb = excel.workbooks.open(file) wb.saveas(xls_path + '\\' + filename, fileformat=56) # xls为56 wb.close() excel.application.quit() print('xlsx2xls转换完成') if __name__ == '__main__': xls_path = r'e:\xlsx\xls' xlsx_path = r'e:\xlsx\xlsx' xls2xlsx(xls_path, xlsx_path) #xlsx2xls(xlsx_path, xls_path)
vba实现方法
将文件夹中的所有xls或xlsx文件转换为xlsx或xls文件;保存时如果存在同名文件,则会覆盖
function xls2xlsx(xls_path$, save_path$) '将xls_path文件夹中所有xls文件转为xlsx格式,保存至save_path文件夹;注意同名覆盖 dim fso as object, wb as workbook, save_file$ application.screenupdating = false '关闭屏幕更新,加快程序运行 application.displayalerts = false '不显示警告信息 set fso = createobject("scripting.filesystemobject") if not fso.folderexists(save_path) then fso.createfolder (save_path) '创建文件夹 for each f in fso.getfolder(xls_path).files '遍历文件夹里文件 if fso.getextensionname(f.name) = "xls" then save_file = save_path & "\" & f.name & "x" '保存文件全名(文件路径、文件名、扩展名) set wb = workbooks.open(f) wb.saveas filename:=save_file, fileformat:=xlopenxmlworkbook wb.close (false) end if next application.screenupdating = true application.displayalerts = true end function function xlsx2xls(xlsx_path$, save_path$) '将xlsx_path文件夹中所有xlsx文件转为xls格式,保存至save_path文件夹;注意同名覆盖 dim fso as object, wb as workbook, save_file$ application.screenupdating = false '关闭屏幕更新,加快程序运行 application.displayalerts = false '不显示警告信息 set fso = createobject("scripting.filesystemobject") if not fso.folderexists(save_path) then fso.createfolder (save_path) '创建文件夹 for each f in fso.getfolder(xlsx_path).files '遍历文件夹里文件 if fso.getextensionname(f.name) = "xlsx" then save_file = save_path & "\" & fso.getbasename(f.name) & ".xls" '保存文件全名(文件路径、文件名、扩展名) set wb = workbooks.open(f) wb.saveas filename:=save_file, fileformat:=xlexcel8 wb.close (false) end if next application.screenupdating = true application.displayalerts = true end function private sub xls和xlsx转换测试() dim file_path$, save_path$ file_path = "e:\测试\xls" save_path = "e:\测试\xlsx" a = xls2xlsx(file_path, save_path) '2种调用方式 ' call xlsx2xls(save_path, file_path) end sub
以上就是使用python实现xls和xlsx之间的相互转换的详细内容,更多关于python xls和xlsx相互转换的资料请关注代码网其它相关文章!
发表评论