KB2554905 - 修正:當您使用 Excel 2010 開啟從 SSRS 2008、SSRS 2008 R2 或 SSRS 2012 匯出的 Excel 報表檔案時,出現「檔案錯誤: 資料可能已遺失」錯誤訊息

Applies To
Excel 2010 SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2012 Web

Microsoft 會發佈 Microsoft SQL Server 2008、Microsoft SQL Server 2008 R2 或 Microsoft SQL Server 2012 修正程式作為一個可下載的檔案。 由於修正程式是累積的,因此每個新版本都包含先前的 SQL Server 2008、SQL Server 2008 R2 或 2012 修正程式版本中包含的所有 Hotfix SQL Server所有安全性修正程式。

症狀

請考量以下情況。 您可以使用 Microsoft SQL Server 2008 Reporting Services (SSRS 2008) 、Microsoft SQL Server 2008 R2 Reporting Services (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 將負零 (-0) 值寫入 Excel 活頁簿。 當您開啟 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 注意:由於這些組建是累積的,因此每個新發行的修正程式都包含所有 Hotfix 和先前的 SQL Server 2008 R2 修正程式版本中包含的所有安全性修正程式。 建議您考慮套用包含此 Hotfix 的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

2730301 發行 SQL Server 2008 R2 Service Pack 2 之後所發行的 SQL Server 2008 R2 組建

SQL Server 2012

此問題的修正程式最初在 SQL Server 2012 的累積更新 2 中發行。 如需有關此累積更新套件的詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

2703275 SQL Server 2012 累積更新套件 2 注意 由於這些組建是累積的,因此每個新發行的修正程式都包含所有 Hotfix 和先前 2012 SQL Server修正程式版本中包含的所有安全性修正程式。 Microsoft 建議您考慮套用包含此 Hotfix 的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

2692828 SQL Server 2012 發行之後所發行的 SQL Server 2012 組建 您必須將 SQL Server 2012 Hotfix 套用至 SQL Server 2012 的安裝。

SQL Server 2008 R2 Service Pack 1

此問題的修正程式最初已發行在 SQL Server 2008 R2 Service Pack 1 的累積更新 6 中。 如需有關如何取得此累積更新套件的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:

2679367 SQL Server 2008 R2 Service Pack 1 的累積更新套件 6 注意: 由於這些組建是累積的,因此每個新的修正程式版本都包含所有 Hotfix 和先前 SQL Server 2008 R2 修正程式版本中包含的所有安全性修正程式。 建議您考慮套用包含此 Hotfix 的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

2567616 在 SQL Server 2008 R2 Service Pack 1 發行之後所發行的 SQL Server 2008 R2 組建 (機器翻譯)

SQL Server 2008 R2

此問題的修正程式最初在累積更新 13 中發行。 如需有關如何取得 SQL Server 2008 R2 的累積更新套件的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:

2679366 SQL Server 2008 R2 的累積更新套件 13 注意:由於這些組建是累積的,因此每個新發行的修正程式都包含所有 Hotfix 和先前 SQL Server 2008 R2 修正程式版本中包含的所有安全性修正程式。 建議您考慮套用包含此 Hotfix 的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

981356 在 SQL Server 2008 R2 發行之後所發行的 SQL Server 2008 R2 組建 (機器翻譯)

SQL Server 2008 Service Pack 3

此問題的修正程式最初在 SQL Server 2008 Service Pack 3 的累積更新 4 中發行。 如需有關如何取得此累積更新套件的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:

2673383 累積更新套件 4 適用於 SQL Server 2008 Service Pack 3 注意:由於這些組建是累積的,因此每個新發行的修正程式都包含所有 Hotfix 和先前發行的 SQL Server 修正程式中包含的所有安全性修正程式。 建議您考慮套用包含此 Hotfix 的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

2629969 發行 SQL Server 2008 Service Pack 3 之後所發行的 SQL Server 2008 組建

因應措施

若要解決此問題,請勿使用負零。

例如,當您在 SSRS 2008 中計算文字方塊的值時,可以使用類似下列的運算式:

=IIf(Sum(Fields!Amount.Value) = -0, 0, Sum(Fields!Amount.Value))

狀態

Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。