【问题标题】:What causes Excel export from SQL Server Reporting Services to produce an abnormally large file?是什么导致从 SQL Server Reporting Services 导出 Excel 生成异常大的文件?
【发布时间】:2008-10-28 17:53:00
【问题描述】:

我们有相对简单的 Reporting Services 报告,我们的用户通常会导出到 Excel。我注意到 Excel 导出生成的文件看起来异常大。如果我打开其中一个文件并单击保存,而不进行任何更改,则文件大小会减小到原来大小的一半左右。有没有其他人遇到过这个问题,是否有已知的解决方法?

【问题讨论】:

  • 您使用的是哪个版本的 Reporting Services?我没有看到这种行为,但该版本可能会帮助我解决原因/修复。谢谢。
  • SQL Server 报告服务 2005 SP2
  • FWIW,也许不出所料,SSRS 2014 似乎不会发生这种情况......事实上,立即重新保存会使文件稍微变大!

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


【解决方案1】:

您提到报告相对简单,但检查这一点很重要。导出到 Excel 将竭尽全力尝试并保持报表的外观。

如果您有很多不同的边框或颜色(特别是如果报告中的数据决定了不同的格式),这会使文件膨胀。

还要检查是否在导出的工作表中创建了许多具有非常小和异常大小的列。导出这样做是为了尝试将 Excel 中的对齐方式与原始报告匹配。

尝试将您的报告重新创建为没有格式或页眉/页脚的基本表格,看看是否可以重现问题。如果 Excel 的行为是可以接受的,则将每个格式添加回去,直到它出错。请告诉我们您的发现。

【讨论】:

  • 报告非常基础。它只有 7 列数据。没有页眉。没有页脚。没有子报告。没有额外的列或行被添加到 excel 文件中。我可以尝试删除列标题。但是,我可以在不做任何更改的情况下打开并保存并将文件大小减半,这似乎仍然很奇怪。
  • 好吧,我没有主意了。再次尝试重新创建报告。另请查看 SQL 更新,他们可能会解决此问题。
  • @PaulG 只是好奇,你有没有找到真正的解决方案,不管它是否与此有关?因为我不确定您为什么将其标记为答案,尽管它声明它不适用于您。
【解决方案2】:

我没有立竿见影的解决方案,但 Excel 中的一个常见问题是文件膨胀,因为一个/部分/所有工作表已保存所有 64K 行而不是正在使用的行。 Excel 中的修复方法是选择所有未使用的较低行并将其删除,然后保存电子表格,关闭并重新打开。因此,我会追求在导出中保存额外行的角度,看看是否有办法防止这种情况发生。

【讨论】:

  • 谢谢兰斯。我考虑过。一旦我打开文件并保存它而不进行任何更改,文件的大小就会减少到大约一半。之后,我尝试删除额外的列和行,但该更改对大小没有影响。
  • 它可能会根据额外的行、列或代码设置大小,然后在设置后的某个关键点消除这些额外内容。不过,这可能是一个难以追踪的错误。祝你好运。
【解决方案3】:

导出到 Excel 时使用什么工具?

我还设法减少了我的 Excel 工作表中的行数,方法是将其复制到另一个工作表,然后删除原始工作表。

您也可以尝试仅复制工作表中的数据,然后将其粘贴到新的 Excel 工作簿(文件)中。

【讨论】:

  • 我只是使用报告服务服务器网站上的常规导出到 excel 选项。不涉及其他工具。
【解决方案4】:

我遇到的问题是导出的 Excel 文件需要花费很长时间才能打开,并且每次单击单元格时它们都会停止响应。

此外,导出的 Excel 文件中会出现额外列和合并列。

修复方法是确保我的标题文本框与其下方数据表中列的开头和结尾对齐。两者对齐后,导出的 Excel 电子表格中不再有多余的列,性能恢复正常。

以下是帮助我理解问题的参考: http://www.codegur.press/12747988/issue-report-export-to-excel-in-rdlc-report

【讨论】:

    【解决方案5】:

    我可能很晚才回答你的问题。这是导出为 CSV 的解决方案。

    您需要为设计器中的字段(而不是列名)提供一个您希望看到的名称作为列标题。

    默认情况下,所有文本标题都与表格列一起导出为单独的列,并确保您在属性中使用您想要查看的名称命名设计名称。

    关于选项DataElementOutput 的另一重要注意事项设置为自动意味着它将被导出。如果您不希望它被导出,您可以更改它。

    最后但并非最不重要的一件事......在您导出数据后看起来很乱。您需要选择整个第一列并转到 Data tab -> convert text to column -> use the delimiter 作为逗号并说完成。这应该可以解决您的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      • 2018-12-22
      • 2019-08-04
      相关资源
      最近更新 更多