Pandas DataFrame导出Excel时单元格长字符串被截断如何解决?
解决Pandas导出Excel时长字符串被截断的问题
问题触发原因
- 导出格式为旧版
.xls,该格式本身限定单个单元格最多存储255个字符 - 导出时默认调用
xlwt引擎,该引擎仅支持.xls格式,继承了255字符上限约束
解决方法
方法1:更换导出引擎为openpyxl(最常用)
直接在to_excel参数中指定使用支持.xlsx格式的openpyxl引擎,.xlsx格式单个单元格最多支持存储32767个字符,可满足绝大多数长文本场景:
# 操作前先确保已安装依赖:pip install openpyxl sources.to_excel("sources.xlsx", engine="openpyxl")
方法2:使用xlsxwriter引擎导出
如果使用openpyxl仍存在截断问题,可以替换为xlsxwriter引擎,同样支持长文本存储:
# 操作前先确保已安装依赖:pip install xlsxwriter sources.to_excel("sources.xlsx", engine="xlsxwriter")
特殊场景处理
如果以上方法执行后仍存在截断,可以通过ExcelWriter手动设置长文本列的单元格格式为文本类型,避免Excel自动处理导致的截断:
import pandas as pd from openpyxl import Workbook from openpyxl.styles import numbers with pd.ExcelWriter("sources.xlsx", engine="openpyxl") as writer: sources.to_excel(writer, sheet_name="Sheet1", index=False) worksheet = writer.sheets["Sheet1"] # 以下代码中列索引、行范围请根据你实际的长文本所在列调整,示例默认第三列为长文本列 for row in range(2, len(sources)+2): worksheet.cell(row=row, column=3).number_format = numbers.FORMAT_TEXT
内容的提问来源于stack exchange,提问作者Ains
相关产品推荐
相关产品推荐

