xlwings Reports快速入门运行报错求助
xlwings Reports快速入门报错问题排查
问题场景
严格按照xlwings Reports快速入门教程操作,复制示例代码并创建指定模板表格,运行report.py时触发以下报错:
Traceback (most recent call last): File "report.py", line 17, in <module> book = app.render_template(this_dir / 'mytemplate.xlsx', File "/home/james/dev/repos/eft/auto-reports/env/lib/python3.8/site-packages/xlwings/main.py", line 699, in render_template return render_template( File "/home/james/dev/repos/eft/auto-reports/env/lib/python3.8/site-packages/xlwings/pro/reports/main.py", line 439, in render_template wb = app.books.open(output) File "/home/james/dev/repos/eft/auto-reports/env/lib/python3.8/site-packages/xlwings/main.py", line 4988, in open return Book(impl=self.impl.open(json=json)) File "/home/james/dev/repos/eft/auto-reports/env/lib/python3.8/site-packages/xlwings/pro/_xlremote.py", line 217, in open book = Book(api=json, books=self) File "/home/james/dev/repos/eft/auto-reports/env/lib/python3.8/site-packages/xlwings/pro/_xlremote.py", line 268, in __init__ if api["version"] != __version__: TypeError: 'NoneType' object is not subscriptable During handling of the above exception, another exception occurred: Traceback (most recent call last): File "report.py", line 20, in <module> book.to_pdf(this_dir / 'myreport.pdf') File "/home/james/dev/repos/eft/auto-reports/env/lib/python3.8/site-packages/xlwings/main.py", line 764, in __exit__ self.quit() File "/home/james/dev/repos/eft/auto-reports/env/lib/python3.8/site-packages/xlwings/main.py", line 388, in quit return self.impl.quit() File "/home/james/dev/repos/eft/auto-reports/env/lib/python3.8/site-packages/xlwings/base_classes.py", line 50, in quit raise NotImplementedError() NotImplementedError
运行环境
- 系统:Ubuntu 20.04.5 LTS
- Python版本:3.8.10
- 依赖包版本:
numpy==1.23.4 pandas==1.5.1 python-dateutil==2.8.2 pytz==2022.5 six==1.16.0 xlwings==0.28.2
解决建议
1. 排查xlwings Remote连接问题
报错涉及_xlremote.py,说明当前使用xlwings Remote模式,但未成功连接到远程Excel服务:
- 在装有Excel的Windows/macOS机器上,安装xlwings并启动服务:
xlwings server start - Linux端设置环境变量:
export XLWINGS_REMOTE_URL=http://<远程机器IP>:5000,确保网络互通
2. 切换为LibreOffice后端
Linux无官方Excel,可使用LibreOffice作为xlwings的处理后端:
- 安装LibreOffice:
sudo apt update && sudo apt install libreoffice - 设置环境变量指定绑定:
export XLWINGS_BINDING=libreoffice
3. 升级xlwings版本
当前使用的0.28.2版本较旧,存在已知Linux兼容性问题,升级到最新稳定版:
pip install --upgrade xlwings
4. 验证模板文件路径
确认mytemplate.xlsx的路径是否正确,检查this_dir / 'mytemplate.xlsx'是否指向实际存在的文件,避免路径错误引发隐性异常
内容的提问来源于stack exchange,提问作者jcstockdale
相关产品推荐
相关产品推荐

