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

如何用Python将Excel数据复制到文本/.DAT文件?openpyxl报错求助

问题分析与解决

你的报错openpyxl.utils.exceptions.InvalidFileException是openpyxl加载文件时触发的,但你贴出的代码里load_workbook加载的是TestFile.xlsx,说明实际运行的代码大概率存在误操作——比如不小心把.dat文件传给了openpyxl.load_workbook(),而openpyxl仅支持.xlsx/.xlsm/.xltx/.xltm格式,不兼容.dat。

另外要明确:把Excel数据写入.dat文本文件,完全不需要用openpyxl处理.dat文件,直接用Python内置的open()函数即可完成写入。

修正后的代码示例

如果要提取Excel前两行数据并写入.dat文件,可参考以下代码:

import openpyxl

# 加载目标Excel文件
workbook = openpyxl.load_workbook('TestFile.xlsx')
ws = workbook['Output']

# 仅遍历前两行数据
for row in list(ws.rows)[:2]:
    # 拼接生成.dat文件名
    file_name = f"{row[0].value}.dat"
    # 写入.dat文件,指定编码避免乱码,处理空单元格情况
    with open(file_name, 'w', encoding='utf-8') as outfile:
        content = str(row[1].value) if row[1].value is not None else ''
        outfile.write(content)

关键注意事项

  • openpyxl仅负责读写Excel文件,.dat文本文件的读写用Python原生open()函数即可,不要用openpyxl操作.dat文件。
  • 若报错确实来自你贴出的代码,检查TestFile.xlsx是否损坏,或文件名是否被误写为.dat后缀。
  • 写入文件时指定编码(如utf-8),避免跨系统乱码;同时处理单元格值为None的情况,防止write()传入非字符串类型报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 18:32:45