Причина:
Проблема возникает из-за того, что и SQL Server Reporting Services 2008, и SQL Server Reporting Services 2008 R2 используют настраиваемую цветовую палитру вместо встроенной палитры, поставляемой с Excel. Первые 56 уникальных цветов, используемых в отчете, определены в пользовательской палитре.
Обход:
Вы можете обойти эту проблему, используя один из следующих методов в зависимости от версии Excel, которую вы используете в вашей среде:
Excel 2007 или Excel 2010: используйте один из следующих методов:
Метод 1: Используйте комбинации Ctrl + C и Ctrl + V со следующими шагами:
Скопируйте исходные данные, нажав Ctrl + C в исходной книге.
В новой книге используйте один из следующих методов для сохранения исходного форматирования:
Щелкните правой кнопкой мыши и выберите «Специальная вставка» в меню «Правка», а затем вставьте данные, выбрав «Использовать всю исходную тему».
или же
После нажатия Ctrl + V на новом листе выберите «Сохранить исходное форматирование» в «Параметры вставки».
Единственное предостережение, которое необходимо учитывать при использовании этого метода, заключается в том, что высота строки и ширина столбца могут не переноситься в новую книгу. Чтобы сохранить высоту строки и ширину столбца, сначала можно переместить или скопировать лист в новую рабочую книгу, чтобы обеспечить приемлемость ширины столбца и высоты строки, а затем снова скопировать содержимое в исходном формате.
Способ 2. Использование операций перемещения или копирования листа со следующими дополнительными шагами:
После перемещения или копирования листа для копирования листа в другую рабочую книгу выполните следующие действия:
Перейдите в меню «Файл» и выберите «Параметры» на левой панели.
На странице параметров Excel выберите вариант Сохранить.
Нажмите кнопку Цвета… под Сохранить внешний вид рабочей книги.
На странице «Цвет» в поле «Копировать цвета из списка» выберите исходный файл Excel, который экспортируется из служб отчетов SQL Server.
Дважды нажмите кнопку ОК, чтобы закрыть все окна параметров.
Вы также можете автоматизировать этот обходной путь, используя макрос-код, подобный следующему:
Sub Sample()
Sheets("OriginalExcelSheetExportedFromReport").Select
Sheets("OriginalExcelSheetExportedFromReport ").Copy
ActiveWorkbook.Colors = Workbooks("OriginalExcelSheetExportedFromReport.xls").Colors
End Sub
Excel 2003: используйте операции перемещения или копирования листа со следующими дополнительными шагами:
После перемещения или копирования листа для копирования листа в другую рабочую книгу выполните следующие действия:
Перейдите в меню «Инструменты» и нажмите «Параметры».
Перейдите на вкладку «Цвет» и в списке «Копировать цвета из списка» выберите исходный файл Excel, который экспортируется из служб отчетов SQL Server. Нажмите кнопку ОК, чтобы закрыть диалоговое окно.