Python中4种方法实现 xls 文件转 xlsx

简介: 【8月更文挑战第6天】以下是Python中将`xls`文件转换为`xlsx`格式的四种方法:1) 使用`pandas`库,通过读取和重新保存文件实现转换;2) 利用`openpyxl`库加载并复制工作簿内容;3) 结合`xlrd`与`xlwt`读取旧格式并写入新格式;4) 在Windows系统下,采用`win32com`自动化Excel应用完成转换。例如,可将`example.xls`文件转换为`converted.xlsx`。

以下是在 Python 中实现 xls 文件转 xlsx 的 4 种方法:


方法一:使用 pandas


import pandas as pd
def convert_xls_to_xlsx_pandas(xls_file_path, xlsx_file_path):
    data = pd.read_excel(xls_file_path)
    data.to_excel(xlsx_file_path, index=False)


方法二:使用 openpyxl


from openpyxl import load_workbook
from openpyxl import Workbook
def convert_xls_to_xlsx_openpyxl(xls_file_path, xlsx_file_path):
    wb = load_workbook(xls_file_path)
    new_wb = Workbook()
    for sheet_name in wb.sheetnames:
        ws = wb[sheet_name]
        new_ws = new_wb.create_sheet(sheet_name)
        for row in ws.iter_rows():
            for cell in row:
                new_ws[cell.coordinate].value = cell.value
    new_wb.save(xlsx_file_path)


方法三:使用 xlrdxlwt


import xlrd
import xlwt
def convert_xls_to_xlsx_xlrd_xlwt(xls_file_path, xlsx_file_path):
    workbook = xlrd.open_workbook(xls_file_path)
    new_workbook = xlwt.Workbook()
    for sheet_index in range(workbook.nsheets):
        sheet = workbook.sheet_by_index(sheet_index)
        new_sheet = new_workbook.add_sheet(sheet.name)
        for row_index in range(sheet.nrows):
            for col_index in range(sheet.ncols):
                new_sheet.write(row_index, col_index, sheet.cell_value(row_index, col_index))
    new_workbook.save(xlsx_file_path)


方法四:使用 win32com 库(在 Windows 系统中)


import win32com.client
def convert_xls_to_xlsx_win32com(xls_file_path, xlsx_file_path):
    excel = win32com.client.Dispatch("Excel.Application")
    workbook = excel.Workbooks.Open(xls_file_path)
    workbook.SaveAs(xlsx_file_path, 51)  # 51 代表 xlsx 格式
    workbook.Close()
    excel.Quit()


例如,如果您有一个 example.xls 文件,想要将其转换为 converted.xlsx ,可以使用上述方法中的任何一种,并传入相应的文件路径进行转换。


相关文章
|
5月前
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
462 1
|
5月前
|
数据可视化 Linux iOS开发
Python脚本转EXE文件实战指南:从原理到操作全解析
本教程详解如何将Python脚本打包为EXE文件,涵盖PyInstaller、auto-py-to-exe和cx_Freeze三种工具,包含实战案例与常见问题解决方案,助你轻松发布独立运行的Python程序。
1376 2
|
6月前
|
机器学习/深度学习 数据采集 数据挖掘
基于 GARCH -LSTM 模型的混合方法进行时间序列预测研究(Python代码实现)
基于 GARCH -LSTM 模型的混合方法进行时间序列预测研究(Python代码实现)
221 2
|
6月前
|
调度 Python
微电网两阶段鲁棒优化经济调度方法(Python代码实现)
微电网两阶段鲁棒优化经济调度方法(Python代码实现)
175 0
|
5月前
|
人工智能 数据安全/隐私保护 异构计算
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
644 8
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
|
4月前
|
监控 机器人 编译器
如何将python代码打包成exe文件---PyInstaller打包之神
PyInstaller可将Python程序打包为独立可执行文件,无需用户安装Python环境。它自动分析代码依赖,整合解释器、库及资源,支持一键生成exe,方便分发。使用pip安装后,通过简单命令即可完成打包,适合各类项目部署。
|
6月前
|
机器学习/深度学习 数据采集 算法
【CNN-BiLSTM-attention】基于高斯混合模型聚类的风电场短期功率预测方法(Python&matlab代码实现)
【CNN-BiLSTM-attention】基于高斯混合模型聚类的风电场短期功率预测方法(Python&matlab代码实现)
340 4
|
5月前
|
算法 调度 决策智能
【两阶段鲁棒优化】利用列-约束生成方法求解两阶段鲁棒优化问题(Python代码实现)
【两阶段鲁棒优化】利用列-约束生成方法求解两阶段鲁棒优化问题(Python代码实现)
149 0
|
6月前
|
机器学习/深度学习 数据采集 TensorFlow
基于CNN-GRU-Attention混合神经网络的负荷预测方法(Python代码实现)
基于CNN-GRU-Attention混合神经网络的负荷预测方法(Python代码实现)
278 0
|
存储 数据采集 数据处理
如何在Python中高效地读写大型文件?
大家好,我是V哥。上一篇介绍了Python文件读写操作,今天聊聊如何高效处理大型文件。主要方法包括:逐行读取、分块读取、内存映射(mmap)、pandas分块处理CSV、numpy处理二进制文件、itertools迭代处理及linecache逐行读取。这些方法能有效节省内存,提升效率。关注威哥爱编程,学习更多Python技巧。
369 8