xlwings.LicenseError报错求助:无法找到许可证密钥
xlwings LicenseError 问题解决
问题原因
报错xlwings.LicenseError: Couldn't find an xlwings license key是因为代码中调用的.api底层操作属于xlwings Pro版专属功能,免费版存在权限限制。之前能正常运行大概率是试用期限到期,或是新版本收紧了免费版权限。
解决方法
修正代码逻辑错误
原代码中wb_output.save()和wb_output.close()放在循环内部,会导致第一次循环就关闭文件,后续循环直接报错。先把这两行移到循环外:wb_output = xlwings.Book(os.path.join(self._output_folder_path, output_file_name)) for ws_output in wb_output.sheets: ws_output.range(str(ws_output.used_range.address)).api.Borders.Weight = 2 ws_output.autofit() # 移到循环外执行保存和关闭 wb_output.save() wb_output.close()检查是否误启用Pro模式
查看系统环境变量,若存在XLWINGS_PRO=1,直接删除该变量,重启Python环境后重新运行代码。改用免费版兼容的实现方式
避免直接依赖.api的高级操作,用xlwings原生支持的方法或调整调用逻辑。比如边框设置可以换成枚举边框类型的方式(部分旧版免费版支持):wb_output = xlwings.Book(os.path.join(self._output_folder_path, output_file_name)) for ws_output in wb_output.sheets: used_range = ws_output.used_range # 枚举所有边框类型设置粗细 for border_id in [7, 8, 9, 10, 11, 12]: used_range.api.Borders(border_id).Weight = 2 ws_output.autofit() wb_output.save() wb_output.close()彻底降级到权限宽松的旧版本
若重装降级无效,可能是残留文件导致。按以下步骤操作:- 执行卸载命令:
pip uninstall xlwings -y - 手动删除Python安装目录下
Lib/site-packages中的xlwings文件夹 - 安装旧版本:
pip install xlwings==0.27.15(该版本免费版对.api操作限制较少)
- 执行卸载命令:
购买Pro许可证(如需高级功能)
若必须使用.api这类Pro专属功能,需购买许可证后设置密钥:import xlwings as xw xw.settings.license_key = "你的Pro许可证密钥"也可通过设置系统环境变量
XLWINGS_LICENSE_KEY来配置密钥。
内容的提问来源于stack exchange,提问作者Praffull
相关产品推荐
相关产品推荐

