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

使用OpenPyxl处理含批注图片的30MB+ XLSM文件的操作咨询

处理带图片批注的大型XLSM文件实践

我最近接手了一个30MB以上的XLSM格式大型Excel文件,体积超标主要是因为里面有大量带图片的单元格批注。下面是我处理这个文件的具体操作流程:

第一步:只读模式打开文件读取指定列名

因为文件体积大,先以只读模式打开可以节省内存、提升加载速度,同时保留原文件的VBA内容:

self.wb = load_workbook(str(self.directory[0]), read_only=True, keep_vba=True, data_only=False)
self.ws = self.wb['BAZA_PRACOWNIKOW']
self.sheet = self.wb.active

这里我直接指定了目标工作表BAZA_PRACOWNIKOW,同时获取了活动工作表对象,方便后续定位需要操作的目标单元格。

第二步:定位目标单元格后重新打开文件添加数据

由于只读模式下无法修改文件内容,找到目标单元格后,我重新以可写模式打开文件(代码里的self.directory[...]对应文件路径的正确索引):

self.wb = load_workbook(str(self.directory[...]), read_only=False, keep_vba=True)
# 后续执行添加数据的操作代码

实操小提醒

  • 只读模式适合纯读取场景,能大幅降低大文件加载时的内存占用,避免程序卡顿
  • 保留keep_vba=True是为了不破坏原文件中的VBA宏逻辑
  • 如果需要从根源减小文件体积,可以考虑遍历单元格批注,批量提取或移除批注内的图片后再保存(这一步需要额外处理Excel的Shapes对象)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:03:46