Pandas调用to_excel()导出.xlsx报UTF-8错误导致保存禁用如何解决
xlsx导出编码报错解决方法
错误原因
xlsx是二进制结构化的Office文件格式,不属于纯文本文件,本身不需要设置UTF-8这类文本编码。pandas的to_excel方法输出xlsx格式时,encoding属于无效参数,强制传入会导致生成的文件结构异常,触发打开时的编码校验错误。
修复步骤
- 第一步:移除
to_excel中的encoding='UTF-8'参数即可,同时不要使用Python内置关键字list作为变量名,避免覆盖内置类型引发其他异常,修改后的代码如下:
import numpy as np import pandas as pd data_list = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] a = np.array(data_list) a = a.reshape(4,4) tablo = pd.DataFrame(a, index=["a", "b", "c", "d"], columns=["x","y","z","t"]) # xlsx格式无需指定encoding参数 tablo.to_excel("tablo_text.xlsx")
- 第二步:如果修改参数后仍导出失败,安装xlsx写入依赖库即可:
执行pip install openpyxl安装pandas默认的xlsx写入引擎,也可以手动指定引擎调用:
tablo.to_excel("tablo_text.xlsx", engine='openpyxl')
补充说明
只有导出csv、txt等纯文本格式文件时,才需要手动传入encoding参数控制文本编码规则。
内容的提问来源于stack exchange,提问作者Meltem Karadağlı
相关产品推荐
相关产品推荐

