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

Openpyxl报错ValueError:无法将部分字符串写入Excel

问题:写入Excel时出现ValueError: Cannot convert 'THE-DATA' to Excel的原因

我创建了包含数字和字符串的列表signal,用以下for循环写入Excel工作表:

import string
# 假设ws是已创建的工作表对象,a是要写入的单行数据列表
columns = list(string.ascii_uppercase)[:26]
row = 3
for j in range(len(columns)):
    ws[columns[j] + str(row)] = a[j]
row += 1

原本代码运行正常,但现在处理部分文件时始终报错:

ValueError: Cannot convert 'THE-DATA' to Excel

即使将字符串中的“-”改为“_”仍会报错,但测试单个列表的代码能正常运行:

import string
# 假设wb、ws是已初始化的工作簿和工作表对象
columns = list(string.ascii_uppercase)[:6]
a_test = [1, 3, "sa", "ABC DEF THE-DATA",7,3]
row = 3  # starting row of the Excel sheet

for j in range(len(columns)):
    ws[columns[j] + str(row)] = a_test[j]

wb.save(fr"Test121314.xlsx")

可能的原因

  • 实际数据包含隐形控制字符:测试用的是干净的字符串,但你处理的文件里的"THE-DATA"可能附带了Excel不支持的不可见ASCII控制字符(比如\x00空字符、\x0b垂直制表符、\x1a替换符这类)。这些字符肉眼看不到,但会触发转换错误,哪怕修改可见的"-"也没用。
  • 元素类型不是纯字符串:如果a列表中对应的元素不是Python的str类型,而是bytes字节对象,哪怕打印出来和字符串一样,Excel库也无法直接转换,会抛出类似错误。
  • 字符串包含超出Excel支持的Unicode字符:某些罕见的Unicode字符(比如部分特殊 emoji、生僻的象形文字)可能不在Excel的字符支持范围内,也会导致转换失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 10:42:46