KB2554905 - ИСПРАВЛЕНО: сообщение об ошибке "Ошибка файла: данные могли быть потеряны" при использовании Excel 2010 для открытия файла отчета Excel, экспортированного из SSRS 2008, SSRS 2008 R2 или SSRS 2012

Применяется к
Excel 2010 SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2012 Web

Корпорация Майкрософт распространяет исправления Microsoft SQL Server 2008, Microsoft SQL Server 2008 R2 или Microsoft SQL Server 2012 в виде одного загружаемого файла. Поскольку исправления являются накопительными, каждый новый выпуск содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправления SQL Server 2008, SQL Server 2008 R2 или SQL Server 2012.

Проблема

Рассмотрим следующий сценарий. Вы используете 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. Затем откройте файл книги Excel с помощью Microsoft Excel 2010 2010, русская версия. В этом случае в диалоговом окне появляется следующее сообщение об ошибке:

Примечание

Ошибка файла: возможно, данные были потеряны.

        
Заметки

  • Эта проблема не возникает, если вы используете Microsoft Office Excel 2003 или Microsoft Office Excel 2007 для открытия файла книги.
  • Эта проблема не возникает, если сохранить файл как файл книги Excel 2010.

Причина

Эта проблема возникает из-за того, что службы SSRS 2008, SSRS 2008 R2 или SSRS 2012 при экспорте отчета записывают в книгу Excel отрицательное значение нуля (-0). При открытии книги Excel 2010 проверяет значение и выводит сообщение об ошибке.

Решение

Сведения о накопительном пакете обновления

SQL Server 2008 R2 с пакетом обновления 2 (SP2)

Исправление для этой проблемы было впервые выпущено в накопительном пакете обновления 1 для SQL Server 2008 R2 с пакетом обновления 2. Дополнительные сведения о том, как получить этот накопительный пакет обновления, см. в следующей статье базы знаний Майкрософт:

2720425 Накопительный пакет обновления 1 для пакета обновления SQL Server 2008 R2 2Примечание Поскольку сборки являются накопительными, каждый новый выпуск исправления содержит все исправления и исправления для системы безопасности, которые входили в предыдущий выпуск исправления SQL Server 2008 R2. Рекомендуется рассмотреть возможность применения последнего выпуска исправления, содержащего это исправление. Для просмотра статьи в базе знаний Майкрософт щелкните следующий номер статьи:

2730301 Сборки SQL Server 2008 R2, выпущенные после выпуска SQL Server 2008 R2 с пакетом обновления 2

SQL Server 2012

Исправление для этой проблемы было впервые выпущено в накопительном пакете обновления 2 для SQL Server 2012. Дополнительные сведения об этом накопительном пакете обновления см. в следующей статье базы знаний Майкрософт:

2703275 Накопительный пакет обновления 2 за SQL Server 2012 г. Примечание. Поскольку сборки являются накопительными, каждый новый выпуск исправления содержит все исправления и исправления для системы безопасности, которые вошли в предыдущий выпуск исправления SQL Server 2012 г. Корпорация Майкрософт рекомендует рассмотреть возможность применения последнего выпуска исправления, содержащего это исправление. Для просмотра статьи в базе знаний Майкрософт щелкните следующий номер статьи:

2692828 Сборки SQL Server 2012 г., выпущенные после выпуска SQL Server 2012 г. Для установки SQL Server 2012 необходимо применить исправление SQL Server 2012.

SQL Server 2008 R2 с пакетом обновления 1 (SP1)

Исправление для этой проблемы было впервые выпущено в накопительном пакете обновления 6 для SQL Server 2008 R2 с пакетом обновления 1. Дополнительные сведения о том, как получить этот накопительный пакет обновления, см. в следующей статье базы знаний Майкрософт:

Пакет накопительного обновления 2679367 6 для SQL Server 2008 R2 с пакетом обновления 1 Примечание Поскольку сборки являются накопительными, каждый новый выпуск исправления содержит все исправления и исправления для системы безопасности, которые были включены в предыдущий выпуск исправления SQL Server 2008 R2. Рекомендуется рассмотреть возможность применения последнего выпуска исправления, содержащего это исправление. Для просмотра статьи в базе знаний Майкрософт щелкните следующий номер статьи:

2567616 Сборки SQL Server 2008 R2, выпущенные после выпуска SQL Server 2008 R2 с пакетом обновления 1

SQL Server 2008 R2

Исправление для этой проблемы впервые выпущено в накопительном пакете обновления 13. Для получения дополнительной информации о том, как получить этот накопительный пакет обновления для SQL Server 2008 R2, откройте статью со следующим номером в базе знаний Майкрософт:

2679366 Накопительный пакет обновления 13 для SQL Server 2008 R2 Примечание Поскольку сборки являются накопительными, каждый новый выпуск исправлений содержит все исправления и исправления для системы безопасности, которые были включены в предыдущий выпуск исправления SQL Server 2008 R2. Рекомендуется рассмотреть возможность применения последнего выпуска исправления, содержащего это исправление. Для просмотра статьи в базе знаний Майкрософт щелкните следующий номер статьи:

981356 Сборки SQL Server 2008 R2, выпущенные после выпуска SQL Server 2008 R2

SQL Server 2008 с пакетом обновления 3 (SP3)

Исправление для этой проблемы было впервые выпущено в накопительном пакете обновления 4 для SQL Server 2008 с пакетом обновления 3 (SP3). Дополнительные сведения о том, как получить этот накопительный пакет обновления, см. в следующей статье базы знаний Майкрософт:

2673383 Накопительный пакет обновления 4 для SQL Server 2008 с пакетом обновления 3 Примечание Поскольку сборки являются накопительными, каждый новый выпуск исправления содержит все исправления и исправления для системы безопасности, которые вошли в предыдущий выпуск исправления SQL Server. Рекомендуется рассмотреть возможность применения последнего выпуска исправления, содержащего это исправление. Для просмотра статьи в базе знаний Майкрософт щелкните следующий номер статьи:

2629969 Сборки SQL Server 2008 г., выпущенные после выпуска SQL Server 2008 с пакетом обновления 3 (SP3)

Временное решение

Чтобы обойти эту проблему, не указывайте отрицательные нули.

Например, при вычислении значения текстового поля в SSRS 2008 можно использовать выражение, похожее на следующее:

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

Состояние

Корпорация Майкрософт подтвердила, что это проблема продуктов Microsoft, перечисленных в разделе «Относится к».