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


相关文章
|
8天前
|
测试技术 API Python
【10月更文挑战第1天】python知识点100篇系列(13)-几种方法让你的电脑一直在工作
【10月更文挑战第1天】 本文介绍了如何通过Python自动操作鼠标或键盘使电脑保持活跃状态,避免自动息屏。提供了三种方法:1) 使用PyAutoGUI,通过安装pip工具并执行`pip install pyautogui`安装,利用`moveRel()`方法定时移动鼠标;2) 使用Pymouse,通过`pip install pyuserinput`安装,采用`move()`方法移动鼠标绝对位置;3) 使用PyKeyboard,同样需安装pyuserinput,模拟键盘操作。文中推荐使用PyAutoGUI,因其功能丰富且文档详尽。
|
4天前
|
安全 Linux 数据安全/隐私保护
python知识点100篇系列(15)-加密python源代码为pyd文件
【10月更文挑战第5天】为了保护Python源码不被查看,可将其编译成二进制文件(Windows下为.pyd,Linux下为.so)。以Python3.8为例,通过Cython工具,先写好Python代码并加入`# cython: language_level=3`指令,安装easycython库后,使用`easycython *.py`命令编译源文件,最终生成.pyd文件供直接导入使用。
python知识点100篇系列(15)-加密python源代码为pyd文件
|
5天前
|
机器学习/深度学习 数据采集 数据挖掘
11种经典时间序列预测方法:理论、Python实现与应用
本文将总结11种经典的时间序列预测方法,并提供它们在Python中的实现示例。
29 2
11种经典时间序列预测方法:理论、Python实现与应用
|
9天前
|
Linux 区块链 Python
Python实用记录(十三):python脚本打包exe文件并运行
这篇文章介绍了如何使用PyInstaller将Python脚本打包成可执行文件(exe),并提供了详细的步骤和注意事项。
22 1
Python实用记录(十三):python脚本打包exe文件并运行
|
1天前
|
开发者 Python
Python中的魔法方法与运算符重载
在Python的奇妙世界里,魔法方法(Magic Methods)和运算符重载(Operator Overloading)是两个强大的特性,它们允许开发者以更自然、更直观的方式操作对象。本文将深入探讨这些概念,并通过实例展示如何利用它们来增强代码的可读性和表达力。
|
2天前
|
Java Python
> python知识点100篇系列(19)-使用python下载文件的几种方式
【10月更文挑战第7天】本文介绍了使用Python下载文件的五种方法,包括使用requests、wget、线程池、urllib3和asyncio模块。每种方法适用于不同的场景,如单文件下载、多文件并发下载等,提供了丰富的选择。
|
3天前
|
数据安全/隐私保护 流计算 开发者
python知识点100篇系列(18)-解析m3u8文件的下载视频
【10月更文挑战第6天】m3u8是苹果公司推出的一种视频播放标准,采用UTF-8编码,主要用于记录视频的网络地址。HLS(Http Live Streaming)是苹果公司提出的一种基于HTTP的流媒体传输协议,通过m3u8索引文件按序访问ts文件,实现音视频播放。本文介绍了如何通过浏览器找到m3u8文件,解析m3u8文件获取ts文件地址,下载ts文件并解密(如有必要),最后使用ffmpeg合并ts文件为mp4文件。
|
9天前
|
JSON 数据格式 Python
Python实用记录(十四):python统计某个单词在TXT/JSON文件中出现的次数
这篇文章介绍了一个Python脚本,用于统计TXT或JSON文件中特定单词的出现次数。它包含两个函数,分别处理文本和JSON文件,并通过命令行参数接收文件路径、目标单词和文件格式。文章还提供了代码逻辑的解释和示例用法。
22 0
Python实用记录(十四):python统计某个单词在TXT/JSON文件中出现的次数
|
SQL 数据库 Python
Python读取xlsx并写入数据库
Python读取xlsx并写入数据库
|
9天前
|
存储 程序员 开发者
Python编程基础:从入门到实践
【10月更文挑战第8天】在本文中,我们将一起探索Python编程的奇妙世界。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供有价值的信息。我们将从Python的基本概念开始,然后逐步深入到更复杂的主题,如数据结构、函数和类。最后,我们将通过一些实际的代码示例来巩固我们的知识。让我们一起开始这段Python编程之旅吧!