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

xlsxwriter不新建工作簿调用set_custom_property设置自定义属性

回答

XlsxWriter 完全不支持修改已存在的工作簿,不存在不新建文件直接编辑现有Excel的用法。

核心原因

  • 这个库的设计目标就是从零生成全新的.xlsx格式文件,从底层就没有开发解析、回写已有Excel文件结构的逻辑,所有API包括你提到的set_custom_property(),都只能作用于通过XlsxWriter新创建的工作簿实例。
  • 如果你直接把已有文件的路径传入xlsxwriter.Workbook()构造函数,原文件会被直接覆盖清空,不会保留任何原有内容,绝对不要这么操作。

实现需求的可行方案

你要给已有工作簿加自定义属性,选下面两种方式即可:

  • 优先用支持读写现有xlsx文件的库处理,比如openpyxl,直接加载目标文件后调用库自带的自定义属性设置接口,修改后保存就行,不需要重建整个文件,也不会丢失原有内容。
  • 如果你必须用XlsxWriter实现,只能先通过其他读库把原有文件的所有工作表、格式、属性、媒体资源全量读取出来,再用XlsxWriter新建工作簿,把读取到的内容逐份写入的同时调用set_custom_property()加上需要的属性,最后保存为新文件替换原文件。这个方案复杂度高,很容易丢失原文件里的宏、复杂图表、数据验证等特殊内容,除非有特殊需求否则不建议用。

注:不要轻信网上所谓XlsxWriter修改现有文件的偏方,所有这类操作本质上都是全量重写文件,不是真正意义上的原地修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 23:36:37