【问题标题】:Excel file size reduces to half when resaved重新保存时 Excel 文件大小减半
【发布时间】:2018-02-09 19:06:33
【问题描述】:

我们在 SSRS 中的报告很少。当我尝试将报告从 SSRS 服务器站点下载为 excel 文件时,即假设我将文件从服务器站点下载到某个位置作为 excel(file) 它消耗 1000 kb 但是当我尝试重新保存它时(没有任何更改只是使用另存为重新保存)excel文件大小实际上减少了一半到500 kb。如果有的话,你们有没有同样的问题,请告诉我如何有效地将报告导入到 excel 文件中。

谢谢

【问题讨论】:

  • 那么当你重新保存excel文件时,excel文件是原来的一半?重新保存时是丢失数据还是文件大小刚刚改变。如果您从 .xls 文件保存到 .xlsx 或 .xlsb,则大小将减小。如果您从 .xlsx 保存到 .xlsb,大小也会减小。有这样的事情发生吗?
  • 您使用的是哪个版本的 SSRS?
  • 嘿@Jarom,除了当我打开文件并重新保存时文件大小从 1000 kb 重新保存到 500 kb 时,数据没有任何差异
  • 嘿@Mat'sMug,我正在使用Visual Studio 2012
  • 你是如何确定文件大小的?

标签: sql sql-server excel vba reporting-services


【解决方案1】:

听起来您可能正在将报表部署到仍呈现 .XLS (Excel 2003) 而不是 .XLSX (Excel 2007+) 的 SQL Server 版本(可能是 2008R2)。我们以前见过这种行为。这是一个已知问题according to Microsoft

Excel 2003 (.xls) 文件的大小

重要 Microsoft Excel 2003 呈现扩展插件已弃用。有关详细信息,请参阅 SQL Server 2016 中 SQL Server Reporting Services 中已弃用的功能。

当报表首次导出并保存到 Excel 2003 时,它们不会受益于 Excel 自动应用于其 .xls 工作簿文件的文件优化。较大的文件大小可能会导致电子邮件订阅和附件出现问题。要减小导出报告的 .xls 文件的大小,请打开 *.xls 文件,然后重新保存工作簿。重新保存工作簿通常会将其文件大小减少 40% 到 50%。

这可以通过升级到呈现为 .XLSX 的更高版本的 SQL 来解决。如果使用 SharePoint 作为主机,您可能需要将 SharePoint 升级到 appropriate version

【讨论】:

  • 我用 python xlsxwriter 创建了一个 excel 表。当我用 libreoffice calc 重新保存它时,大小减少了 60% 以上。为什么会这样?
  • 请参阅我的答案中的“根据 Microsoft”链接并阅读“Excel 2003 (.xls) 文件的大小”部分。它提到了 SSRS XLS 渲染器未使用文件优化。我猜python xlswriter 也可能是这种情况。在 Excel 或 libreoffice calc 中打开和重新保存都必须应用文件优化。注意:我从未使用过这些应用程序中的任何一个。
猜你喜欢
  • 2020-08-18
  • 2013-10-01
  • 2012-07-03
  • 2021-11-30
  • 1970-01-01
  • 2017-01-29
  • 2010-10-08
  • 2012-05-10
  • 2019-03-03
相关资源
最近更新 更多