Excel 工作簿连接使文件大小变大



我有一系列大约 30 个 Excel 报告 ( .xlsm (,每个报告都有一个配置到数据库的唯一连接。该连接只是一个简短的 SQL 脚本,用于获取要在报表上显示的数据。数据将填充到表(而不是数据透视表(中。

每周我们都需要更新这些报告,因此我使用简单的 PowerShell 脚本打开每个文件并刷新连接。

每隔一段时间,我们需要将 base 30 报告发送给其他工作组,以便他们可以自行手动更新文件。这可能很麻烦,因为有些报告非常大(30mb+(。这使得发送电子邮件变得困难,并且每天上传/下载它们几次只是一件麻烦事。

为了缓解这种情况,在我们分发报告模板之前,我尝试删除表中的所有行以及任何未使用的范围。这有所帮助,但仍然有几个文件非常大 (30mb+(,即使我们已经删除了工作簿中除连接和空表之外的所有内容。

通过测试,我意识到如果我删除配置的连接,文件大小会变得足够小(<1mb(,这是我所期望的。这让我相信 Excel 连接有一种需要清除的缓存,但我找不到任何参考。

有谁知道一种简单的方法来减小连接的大小,这样我就可以使用 VBA/Powershell 以编程方式做到这一点?

如果删除配置的连接足以减小文件大小,则可以编写一个宏来删除连接,并编写另一个宏来重新建立连接。正如 Noldor130884 所建议的那样,您可以在 Workbook_OpenWorkbook_Close 上自动执行宏。

Office Online - 创建、编辑和管理与外部数据的连接

上述参考资料似乎做出了以下相关陈述:
"删除连接只会删除连接,而不会从工作簿中删除任何对象或数据。">

在我看来,

问题出在格式上。我不知道为什么,但在我的文件中,excel重新格式化了所有行和列,同时添加了带有连接数据的表单。因此,工作表非常大,但如果您检查 xml 文件,它只显示格式化数据。一旦我手动删除了所有"空"行,文件的大小再次正常。希望有帮助,对我的情况有帮助..

最新更新