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 ,可以使用上述方法中的任何一种,并传入相应的文件路径进行转换。


相关文章
|
11天前
|
安全 项目管理 Python
使用Python shutil库进行文件和目录操作
使用Python shutil库进行文件和目录操作
使用Python shutil库进行文件和目录操作
|
1天前
|
Python
Python中几种lambda排序方法
【9月更文挑战第7天】在Python中,`lambda`表达式常用于配合排序函数,实现灵活的数据排序。对于基本列表,可以直接使用`sorted()`进行升序或降序排序;处理复杂对象如字典列表时,通过`lambda`指定键值进行排序;同样地,`lambda`也适用于根据元组的不同位置元素来进行排序。
|
11天前
|
Python
像导入Python模块一样导入ipynb文件
像导入Python模块一样导入ipynb文件
|
11天前
|
Python
|
12天前
|
算法 定位技术 vr&ar
一文了解PnP算法,python opencv中的cv2.solvePnP()的使用,以及使用cv2.sovlePnP()方法标定相机和2D激光雷达
一文了解PnP算法,python opencv中的cv2.solvePnP()的使用,以及使用cv2.sovlePnP()方法标定相机和2D激光雷达
65 0
一文了解PnP算法,python opencv中的cv2.solvePnP()的使用,以及使用cv2.sovlePnP()方法标定相机和2D激光雷达
|
10天前
|
UED Python
探索Python中的魔法方法:打造自定义字符串表示
【8月更文挑战第31天】在Python的世界里,魔法方法是那些以双下划线开头和结尾的特殊方法,它们为类提供了丰富的功能。本文将带你走进这些魔法方法的背后,特别是__str__和__repr__,揭示如何通过它们来定制我们的对象在被打印或转换为字符串时的外观。我们将从基础用法开始,逐步深入到高级技巧,包括继承与重写,最终实现一个优雅的字符串表示方案。准备好了吗?让我们开始这段代码之旅吧!
|
11天前
|
TensorFlow 算法框架/工具 C++
Python exe文件打包神器-Nuitka!
Python exe文件打包神器-Nuitka!
|
11天前
|
存储 安全 Python
Python中临时文件的妙用
Python中临时文件的妙用
|
23小时前
|
Python
探索Python编程的奥秘:打造你的第一个程序
【9月更文挑战第8天】本文将带你进入Python编程的世界,通过一个有趣的项目——制作一个简单的猜数字游戏,让你快速入门。我们不仅会分享代码编写的步骤,还会讲解每一行代码的含义和作用,确保即使是编程新手也能跟上节奏。文章末尾附有完整代码,方便读者实践和学习。
18 12
|
1天前
|
API Python
探索Python中的多线程编程
探索Python中的多线程编程
12 5
下一篇
DDNS