你目前正处于脱机状态,正在等待 Internet 重新连接

修复:"文件错误: 数据可能已经丢失"Excel 2010 用于打开从 SSRS 2008、 SSRS 2008 R2 或 SSRS 2012 导出一个 Excel 报告文件时出现错误消息

注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。

点击这里察看该文章的英文版: 2554905
Microsoft 将分发 Microsoft SQL Server 2008年,Microsoft SQL Server 2008 R2 或 Microsoft SQL Server 2012年修复作为一个可下载的文件。修补程序是累积性的因为每个新版本包含的所有修补程序和所有安全修补程序包含以前 SQL Server 2008 年 SQL Server 2008 R2or SQL Server 2012年修补程序版本。
症状
产生错误的场景如下:使用 Microsoft SQL Server 2008 Reporting Services (SSRS 2008)、 Microsoft SQL Server 2008 R2 报告服务 (SSRS 2008 R2) 或 Microsoft SQL Server 2012 Reporting Services (SSRS 2012) 以将报表导出到 Microsoft Excel 工作簿文件。然后,您可以使用 Microsoft Excel 2010 打开 Excel 工作簿文件。在此方案中,您将收到以下错误消息对话框中:
文件错误: 数据可能已经丢失。


注释
  • 如果您使用 Microsoft Office Excel 2003 或 Microsoft Office Excel 2007 中打开工作簿文件,不会出现此问题。
  • 如果将该文件保存为 Excel 2010 工作簿文件,不会出现此问题。
原因
出现此问题是因为您导出报表时 SSRS 2008、 SSRS 2008 R2 或 SSRS 2012 向 Excel 工作簿中写入了负零 (-0) 的值。当您打开 Excel 工作簿时,Excel 2010 检查值,并找到值后生成的错误消息。
解决方案

累积更新信息

SQL Server 2008 R2 Service Pack 2

SQL Server 2008 R2 Service Pack 2 的累积更新 1 中首次发布此问题的修补程序。有关如何获取此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2720425 SQL Server 2008 R2 Service Pack 2 的累积更新包 1
注意 生成是累积性的因为每个新修补程序版本包含的所有修补程序和所有安全修补程序包括以前的 SQL Server 2008 R2 的修补程序版本。我们建议您考虑应用了最新的修补程序版本包含此修复程序。有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2730301 SQL Server 2008 R2 生成 SQL Server 2008 R2 Service Pack 2 发布后发布

SQL Server 2012

此问题的修补程序是首次推出具有累积性更新 2 中的 SQL Server 2012年。有关此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2703275 累积更新包 2 的 SQL Server 2012
注意 生成是累积性的因为每个新修补程序版本包含的所有修补程序和所有安全修补程序包含以前的 SQL Server 2012年修补程序版本。Microsoft 建议您考虑应用了最新的修补程序版本包含此修复程序。有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2692828 SQL Server 2012年生成 SQL Server 2012年发布后发布
必须将 SQL Server 2012年修补程序应用到安装的 SQL Server 2012年。

SQL Server 2008 R2 Service Pack 1

此问题的修补程序是首次推出具有累积性更新 6 中的 SQL Server 2008 R2 Service Pack 1。有关如何获取此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2679367 SQL Server 2008 R2 Service Pack 1 的累积更新包 6
注意 生成是累积性的因为每个新修补程序版本包含的所有修补程序和所有安全修补程序包括以前的 SQL Server 2008 R2 的修补程序版本。我们建议您考虑应用了最新的修补程序版本包含此修复程序。有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2567616 SQL Server 2008 R2 版本发布后发布 SQL Server 2008 R2 Service Pack 1

SQL Server 2008 R2

此问题的修补程序是累积性更新 13 中首次推出。有关如何为 SQL Server 2008 R2 中获取此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2679366 SQL Server 2008 R2 的累积更新包 13
注意 生成是累积性的因为每个新修补程序版本包含的所有修补程序和所有安全修补程序包括以前的 SQL Server 2008 R2 的修补程序版本。我们建议您考虑应用了最新的修补程序版本包含此修复程序。有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
981356 SQL Server 2008 R2 生成 SQL Server 2008 R2 发布后发布

SQL Server 2008 Service Pack 3

此问题的修补程序是首次推出具有累积性更新 4 中的 SQL Server 2008 Service Pack 3。有关如何获取此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2673383 累积更新包 4 个 SQL Server 2008 Service Pack 3
注意 生成是累积性的因为每个新修补程序版本包含的所有修补程序和所有安全修补程序包含以前的 SQL Server 修补程序版本。我们建议您考虑应用了最新的修补程序版本包含此修复程序。有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2629969 SQL Server 2008年版本发布后发布 SQL Server 2008 Service Pack 3
替代方法
要解决此问题,请不要使用负零。

例如,您可以使用如下所示的表达式在 SSRS 2008 中计算文本框的值:
=IIf(Sum(Fields!Amount.Value) = -0, 0, Sum(Fields!Amount.Value))
状态
Microsoft 已经确认这是在"适用于"一节中列出的 Microsoft 产品中的问题。

警告:本文已自动翻译

属性

文章 ID:2554905 - 上次审阅时间:10/15/2012 07:19:00 - 修订版本: 6.0

Microsoft SQL Server 2008 Reporting Services, Microsoft Excel 2010, Microsoft SQL Server 2008 R2 Reporting Services, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2012 Web

  • kbqfe kbfix kbexpertiseadvanced kbsurveynew kbmt KB2554905 KbMtzh
反馈
var m=document.createElement('meta');m.name='ms.dqp0';m.content='true';document.getElementsByTagName('head')[0].appendChild(m);" onload="var m=document.createElement('meta');m.name='ms.dqp0';m.content='false';document.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?">