execjs和openpyxl两个包冲突

python文件中有execjs包导入JS的,也有openpyxl包写入excel的,但执行后,JS就变成乱码了,且无法恢复。是这两个包有冲突么,怎么解决

可能是因为execjs在载入JS代码时使用了不兼容的编码格式导致JS代码出现乱码,从而导致JS代码无法正常执行。你可以尝试使用以下方法解决该问题:
修改载入JS文件时的编码格式
在使用execjs导入JS代码时,尝试指定正确的编码格式。例如,如果你的JS代码是UTF-8编码,可以使用以下代码载入JS文件:

import codecs
import execjs

with codecs.open('file.js', 'r', 'utf-8') as f:
    js_code = f.read()
    ctx = execjs.compile(js_code)

启用编码格式转换
如果你无法确定JS代码的编码格式,可以使用Python的编码格式转换工具来尝试将JS代码从乱码中恢复,例如:

import codecs
import execjs

with open('file.js', 'rb') as f:
    js_data = f.read()
    js_code = js_data.decode('gbk', 'ignore')
    ctx = execjs.compile(js_code)

这里假设你的JS代码的原始编码格式是gbk,如果不是,可以尝试将这里的'gbk'修改为对应的编码格式。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    抱歉,没有具体的问题,无法提供解决方案。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^