首页 > 其他分享 >记录一次openpyx使用rich_text报错AttributeError: 'TextBlock' object has no attribute 'name

记录一次openpyx使用rich_text报错AttributeError: 'TextBlock' object has no attribute 'name

时间:2023-12-21 15:33:21浏览次数:34  
标签:write lxml name attribute cell LXML 报错 openpyxl


先说解决办法:

pip install lxml

报错截图:

当时在两个环境中分别使用相同版本openpyxl,相同的代码,一个环境中能成功,另外一个一直报错。
排查结果如下:
根据报错找到文件: File "\openpyxl\worksheet_writer.py", line 147, in write_row
在155行到158行看到如下代码:

if LXML:
    write_cell = lxml_write_cell
else:
    write_cell = etree_write_cell

根据这一行报错: File "D:\Users\workspace\venv_my\vent_fastapi\lib\site-packages\openpyxl\cell_writer.py", line 82, in etree_write_cell
推测是此处应该要使用lxml_write_cell,改成如下再执行:

if LXML:
    write_cell = lxml_write_cell
else:
    write_cell = lxml_write_cell

ok,不报错了。
再往上找到LXML的定义处

LXML = lxml_available() and lxml_env_set()

分别找到这两个函数的定义,检查处理逻辑,其中第一个函数取值如下:

def lxml_available():
    try:
        from lxml.etree import LXML_VERSION
        LXML = LXML_VERSION >= (3, 3, 1, 0)
        if not LXML:
            import warnings
            warnings.warn("The installed version of lxml is too old to be used with openpyxl")
            return False  # we have it, but too old
        else:
            return True  # we have it, and recent enough
    except ImportError:
        return False  # we don't even have it

发现需要导入lxml,估计时某个环境没有安装,直接pip install lxml后再次执行,解决~

标签:write,lxml,name,attribute,cell,LXML,报错,openpyxl
From: https://www.cnblogs.com/liulangjuanzhou/p/17919163.html

相关文章

  • Mysql报错:too many connections原因及解决方法
    原因是mysql连接数过多解决方案一:1、linux登录mysql:mysql-uroot-p;2、查看mysql允许的最大连接数showvariableslike'%max_connections%';3、查看这次mysql服务启动到现在,同一时刻最多mysql有多少连接showstatuslike'Max_used_connections';4、修改mysql最大连......
  • 记录 | 报错:libssl-dev : 依赖: libssl3 (= 3.0.8-1ubuntu1.1) 但是 3.0.8-1ubuntu1.2
    ubuntu上安装libssl-dev失败的报错解决报错:下列软件包有未满足的依赖关系:libssl-dev:依赖:libssl3(=3.0.8-1ubuntu1.1)但是3.0.8-1ubuntu1.2正要被安装E:无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。想当然,ubuntu下使用如下命令安......
  • 242-InetAddress.getLocalHost().getHostName() took 20021 milliseconds to respond
    一台windows服务器,要部署jar,启动成功,却无法正常请求。会报错:InetAddress.getLocalHost().getHostName()took20021millisecondstorespond.Pleaseverifyyournetworkconfiguration.经查,该服务器启动了一个其他服务,该服务占用了所有的网络请求带宽,导致网络不通。找到服......
  • 报错: Failed to execute ‘append‘ on ‘FormData‘: 2 arguments required, but on
    未能对“FormData”执行“append”:需要2个参数,但仅存在1个参数。  letformData=newFormData()本来formData.append(‘list’,JSON.stringify(arr))  改成下边这样了,就报错了formData.append(JSON.stringify(arr))正确的写法应该是: fd.append("参数名",值") ;我们......
  • pnpm切换源后报错ERR_PNPM_REGISTRIES_MISMATCH
    工具都是有利有弊,使用pnpm过程中经常会出现一个错误:Thismodulesdirectorywascreatedusingthefollowingregistriesconfiguration:{"default":"https://registry.npmjs.org/"}.Thecurrentconfigurationis{"default":"https://registry.npm.ta......
  • React项目中报错:Parsing error: The keyword 'import' is reservedeslint
    记得更改完配置后,要重启编辑器(如:VSCode)!!!记得更改完配置后,要重启编辑器(如:VSCode)!!!记得更改完配置后,要重启编辑器(如:VSCode)!!!这个错误通常发生在你尝试在一个不支持ES6模块语法的环境中使用import关键字。ESLint默认使用的是ES5语法,如果你想使用ES6或者更新的语法,你......
  • nginx相关报错
     #openresty-sreloadnginx:[warn]conflictingservername"community-gw.xxx.cn"on0.0.0.0:80,ignorednginx:[warn]conflictingservername"apusai.com"on0.0.0.0:80,ignorednginx:[warn]conflictingservername"rlnk.net"......
  • DBus.server服务启动报错->"/etc/selinux/*/contexts/dbus_contexts": No such file o
    系统启动后很多使用dbus1的命令没法使用,查看日志发现dbus.service没有启动,并伴随下面报错:Failedtostartmessagebus:Failedtoopen"/etc/selinux/targeted/contexts/dbus_contexts":Nosuchfileordirector 进入到该目录后发现缺少这个文件,经过简单搜索发现这个由......
  • 我在Win11系统安装WSL时的报错和解决方法
    安装方法参考设置WSL开发环境|MicrosoftLearn, 打开PowerShell(或Windows命令提示符)并输入:wsl--install 报错:"无法解析服务器的名称或地址"尝试了网上的更改网络适配器设置和网络属性的方法并未解决问题.解决办法:用梯子 安装结束后重启计算机,打......
  • eclipse新建Maven项目卡33%以及新建项目wadapp报错
    eclipse新建Maven项目时明明配置都改了,但是一直卡在33%不动的原因是因为有些eclipse的版本需要你输入Y才开始新建项目如图所示输入Y就可以啦新建项目报错参考连接eclipse新建项目报错:Thesuperclass“javax.servlet.http.HttpServlet“wasnotfoundontheJavaBuildPath......