如何用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
相关产品推荐
相关产品推荐

