You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python将.xlsx格式文件转换为.xls格式?

Python实现.xlsx到.xls的真实格式转换

直接修改扩展名或复制文件只会改变文件名,文件内部的二进制结构还是.xlsx格式,这就是Excel弹出格式不匹配警告的核心原因。下面是几种真正实现格式转换的可行方案:

方法一:使用pandas(适合纯数据类表格)

先安装所需依赖包:

pip install pandas xlwt openpyxl

示例代码:

import pandas as pd

# 读取xlsx文件(依赖openpyxl引擎)
df = pd.read_excel("input.xlsx", engine="openpyxl")
# 保存为xls格式(依赖xlwt引擎)
df.to_excel("output.xls", engine="xlwt", index=False)

注意:xlwt对单sheet的行数有限制(最多65536行),如果表格数据量超过这个阈值,建议选择其他方法。

方法二:使用openpyxl+xlwt(支持自定义单元格处理)

适合需要手动控制单元格内容、样式的场景:

from openpyxl import load_workbook
import xlwt

# 读取源xlsx文件
wb_xlsx = load_workbook("input.xlsx")
ws_xlsx = wb_xlsx.active

# 创建目标xls工作簿
wb_xls = xlwt.Workbook()
ws_xls = wb_xls.add_sheet("Sheet1")

# 逐行逐列复制数据
for row_idx, row in enumerate(ws_xlsx.iter_rows(values_only=True), start=0):
    for col_idx, value in enumerate(row, start=0):
        ws_xls.write(row_idx, col_idx, value)

# 保存转换后的xls文件
wb_xls.save("output.xls")

这种方法可以扩展编写样式转换逻辑,但需要额外处理单元格格式的映射。

方法三:Windows环境下调用Excel COM对象(保留完整格式)

如果需要保留原文件的复杂格式(比如公式、图表、单元格样式),可以直接调用本地Excel程序完成转换:

import win32com.client as win32
import os

excel = win32.gencache.EnsureDispatch('Excel.Application')
excel.Visible = False  # 后台运行,不显示Excel窗口

try:
    # 打开xlsx源文件
    wb = excel.Workbooks.Open(os.path.abspath("input.xlsx"))
    # 另存为xls格式(FileFormat=56对应标准xls格式)
    wb.SaveAs(os.path.abspath("output.xls"), FileFormat=56)
    wb.Close()
finally:
    excel.Quit()

注意:此方法仅适用于Windows系统且需安装Excel软件,能完美保留原文件的所有格式和内容,但依赖外部软件环境。

内容的提问来源于stack exchange,提问作者BadgerTaco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 20:05:39