Экспорт отчета на страницу в Microsoft Excel (построитель отчетов)

Область применения: Построитель отчетов (SSRS) Power BI конструктор отчетов построитель отчетов в SQL Server Data Tools

При работе с Power BI или SQL Server Reporting Services (SSRS) можно использовать расширение отрисовки Excel для экспорта отчетов с разбивкой на страницы в Microsoft Excel. Ширина экспортированных столбцов в Excel имитирует ширину столбцов в отчетах. Но вы можете переструктурировать данные отчета или дополнительно обработать его в книге.

В этой статье рассматриваются различные аспекты процесса экспорта, такие как поддержка отрисовщика для интерактивных функций и размещение данных в ячейках. Также рассматриваются ограничения Excel и отрисовщика.

Формат экспорта

Модуль подготовки отчетов Excel экспортирует отчеты в формат Office Open XML. Тип содержимого файлов, создаваемых отрисовщиком, — application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, а расширение файла — .xlsx.

Некоторые параметры по умолчанию для этого модуля подготовки отчетов можно изменить через настройку сведений об устройстве. Дополнительные сведения см. в разделе "Параметры сведений об устройстве Excel".

Сведения о экспорте отчета в формате Excel см. в статье "Экспорт отчетов с разбивкой на страницы" (построитель отчетов).

Внимание

При определении параметра отчета типа Stringпользователь отображает текстовое поле, которое может принимать любое значение. Если параметр отчета не привязан к параметру запроса, а значения параметров включены в отчет, существует риск безопасности. В частности, пользователь отчета может вводить синтаксис выражений, код скрипта или URL-адрес в качестве значения параметра. В результате пользователь может ввести вредоносный скрипт или вредоносную ссылку. Если отчет экспортируется в Excel, другие пользователи могут просмотреть его. Если они выбирают отрисованное содержимое параметра, они рискуют непреднамеренно запустить вредоносный скрипт или перейти на вредоносный сайт.

Чтобы снизить риск неумышленного запуска вредоносных скриптов, открывайте отчеты, готовые для просмотра, только из проверенных источников. Дополнительные сведения о защите отчетов см. в разделе "Безопасные отчеты и ресурсы".

Ограничения Excel

Excel устанавливает ограничения на экспортированные отчеты из-за возможностей Excel и его форматов файлов. Наиболее важными являются следующие ограничения:

  • Максимальная ширина столбца составляет 255 символов или 1726,5 точек. Отрисовщик не проверяет, что ширина столбца меньше предела.
  • Максимальное число символов в ячейке — 32 767. Если это ограничение превышено, отрисовщик отображает сообщение об ошибке.
  • Максимальная высота строки — 409 пунктов. Если содержимое строки приводит к превышению высоты строки 409 точек, ячейка Excel показывает частичный объем текста до 409 точек. Остальная часть содержимого ячейки по-прежнему находится в ячейке до максимального допустимого 32 767 символов.
  • Так как максимальная высота строки составляет 409 точек, если определенная высота ячейки в отчете превышает 409 точек, Excel разделяет содержимое ячейки на несколько строк.
  • Максимальное количество листов не определено в Excel. Но внешние факторы, такие как память и дисковое пространство, могут привести к применению ограничений.
  • В структурах Excel допускается до 7 уровней вложенности.
  • Доступность структуры зависит от положения элемента отчета, который управляет видимостью другого элемента. Структура недоступна в следующих случаях:
    • Элемент отчета элемента управления не отображается в предыдущей или следующей строке относительно развернутого или свернутого элемента.
    • Элемент отчета элемента управления не отображается в столбце развернутого или свернутого элемента.

Дополнительные сведения об ограничениях Excel см . в спецификациях и ограничениях Excel.

Текстовые поля и текст

Следующие ограничения относятся к текстовым полям и тексту.

  • Значения текстового поля, которые являются выражениями, не преобразуются в формулы Excel. Значения всех текстовых полей вычисляются во время обработки отчета. Вычисляемые выражения экспортируются в виде содержимого каждой из ячеек Excel.
  • Каждое текстовое поле отображается в одной ячейке Excel. Для размера шрифта, лица шрифта, украшения и стиля шрифта форматирование поддерживается в тексте ячейки.
  • Excel не поддерживает встроенное форматирование текста.
  • Excel добавляет отступы с левой и правой стороны ячейки, по умолчанию равные 3,75 пункта. Если заполнение текстового поля меньше 3,75 точек, и поле недостаточно широко для размещения текста, текст может быть вложен в новую строку в Excel. Эту проблему можно обойти, увеличив ширину текстового поля в отчете.

Изображения

Следующие ограничения применяются к изображениям.

  • Фоновые изображения для элементов отчета игнорируются, так как Excel не поддерживает фоновые изображения для отдельных ячеек.
  • Модуль подготовки отчетов Excel поддерживает фоновые изображения только для текста отчета. Если фоновое изображение текста отчета отображается в отчете, то оно будет преобразовано в фоновое изображение листа.

Прямоугольники

Следующее ограничение применяется к прямоугольникам: прямоугольники в нижних колонтитулах отчетов не экспортируются в Excel. Но прямоугольники в тексте отчета, ячейках табликса и других аналогичных компонентах отображаются в виде диапазона ячеек Excel.

Заголовки и нижние колонтитулы отчета

К верхним и нижним колонтитулам отчетов применяются следующие ограничения.

  • В верхних и нижних колонтитулах Excel поддерживаются значения с максимальной длиной в 256 символов, включая разметку. Модуль подготовки отчетов производит усечение строки после 256 символов.
  • Службы SSRS не поддерживают поля в верхних и нижних колонтитулах отчета. В Excel эти значения полей равны нулю.
  • При печати отчета, экспортированного в Excel, параметры принтера могут повлиять на отрисовку. В частности, если верхний или нижний колонтитул в отчете содержит несколько строк данных, вы можете не видеть несколько строк в распечатке.
  • Текстовые поля в верхнем или нижнем колонтитуле поддерживают форматирование, но не их выравнивание при экспорте в Excel. Начальные и конечные пробелы обрезаются при отрисовке отчета в Excel, что изменяет выравнивание.

Объединенные ячейки

Следующее ограничение применяется к слиянию ячеек: если ячейки объединены, текст не упакован правильно.

Модуль подготовки отчетов Excel является главным образом модулем подготовки макетов. Его целью является репликация макета отрисованного отчета как можно ближе в листе Excel. В результате ячейки могут быть объединены на листе, чтобы сохранить макет отчета. Объединенные ячейки могут вызвать проблемы, так как функции сортировки в Excel требуют объединения ячеек определенным способом для правильной сортировки. Например, если вы хотите отсортировать диапазон ячеек, Excel требует, чтобы каждая объединенная ячейка в диапазоне имели тот же размер, что и другие объединенные ячейки в диапазоне.

Уменьшение количества объединенных ячеек в листах Excel упрощает сортировку листов. Следующие моменты помогут свести к минимуму количество ячеек, которые объединяются во время процесса экспорта.

  • Наиболее распространенная причина объединения ячеек заключается в том, что элементы не выровнены по левому или правому краю. Как правило, проблему можно решить, настроив левые и правые края всех элементов отчета и предоставив элементы одинаковой ширины.
  • Даже при выравнивании всех элементов некоторые столбцы по-прежнему объединяются в редких случаях. Внутреннее преобразование единиц и округление во время процесса отрисовки может привести к слиянию ячеек. В языке определения отчета (RDL) можно указать позиции и размеры в различных единицах, таких как дюймы, пиксели, сантиметры и точки. В excel используются точки. В результате дюймы и сантиметры преобразуются в точки во время отрисовки. Чтобы минимизировать операции преобразования во время отрисовки и потенциальную неточность округления, рассмотрите возможность указания всех измерений в целых точках. Дюйм составляет 72 пункта.

Группы строк отчета и группы столбцов

Отчеты, содержащие группы строк или группы столбцов, содержат пустые ячейки при экспорте в Excel. На следующем рисунке показан отчет, который группирует строки на расстоянии от commute. Каждое расстояние до работы может содержать нескольких клиентов.

Снимок экрана: отчет на веб-портале SSRS. Каждая строка расстояния в отчете охватывает несколько строк клиента.

При экспорте отчета в Excel расстояние от commute отображается только в одной ячейке столбца "Расстояние коммута". При проектировании отчета можно выровнять текст до верхней, средней или нижней части группы строк. Это выравнивание определяет, находится ли значение в первой, середине или последней ячейке в экспортируемом отчете. Другие ячейки в этом столбце в группе пусты. Столбец Name , содержащий имена клиентов, не имеет пустых ячеек.

На следующем рисунке показан отчет после экспорта в Excel. Пустые ячейки затеняются серым цветом на изображении, но заливка не является частью экспортированного отчета.

Снимок экрана: экспортируемый отчет в Excel. Каждая строка расстояния сначала находится в диапазоне, охватывающего несколько строк клиента. Другие ячейки в диапазоне серые.

После экспорта отчета, содержащего группы строк или группы столбцов в Excel, необходимо изменить отчет, прежде чем отобразить экспортированные данные в сводной таблице. Необходимо добавить значение группы в ячейки, которые отсутствуют. Затем лист становится плоской таблицей со значениями во всех ячейках. На следующем рисунке показан обновленный лист.

Снимок экрана: экспортируемый отчет в Excel без пустых ячеек. Каждая строка содержит значение расстояния и имя, среди других данных.

Если вы создаете отчет для конкретной цели экспорта в Excel для дальнейшего анализа данных отчета, рассмотрите возможность не группироваться по строкам или столбцам в отчете.

Отрисовщик Excel

В следующем XML-коде показан элемент модуля подготовки отчетов Excel в файлах конфигурации RSReportServer и RSReportDesigner:

<Extension Name="EXCELOPENXML" Type="Microsoft.ReportingServices.Rendering.ExcelOpenXmlRenderer.ExcelOpenXmlRenderer,Microsoft.ReportingServices.ExcelRendering"/>

Отрисовщик Excel имеет следующие значения и ограничения по умолчанию:

Свойство Значение
Максимальное число столбцов на листе 16,384
Максимальное число строк на листе 1 048 576
Количество цветов, допустимых на листе Приблизительно 16 миллионов (24-разрядный цвет)
Сжатые файлы в формате ZIP Сжатие в формате ZIP
Семейство шрифтов по умолчанию Calibri
Размер шрифта по умолчанию 11 пунктов
Высота строки по умолчанию 15 очков

Так как отчет явно задает высоту строки, высота строки по умолчанию влияет только на строки, размер которых автоматически выполняется во время экспорта в Excel.

Элементы отчета в Excel

При экспорте отчета в Excel следующие компоненты отображаются в виде диапазона ячеек Excel: вложенных отчетов, прямоугольников, текста отчета и областей данных. Текстовые поля, изображения, диаграммы, гистограммы, спарклайны, карты, датчики и индикаторы отображаются в одной ячейке Excel. Но эта ячейка может быть объединена с другими ячейками. Макет остального отчета определяет, происходит ли слияние.

Изображения, диаграммы, спарклайны, гистограммы, карты, датчики, индикаторы и линии расположены в одной ячейке Excel, но они находятся на вершине сетки ячеек. Линии отображаются как границы ячеек.

Диаграммы, спарклайны, гистограммы, карты, датчики и индикаторы экспортируются в виде изображений. Отображаемые данные не экспортируются вместе с ними. Данные недоступны в книге Excel, если только вы не включите их в столбец или строку в регионе данных в отчете.

Если вы хотите работать с данными для диаграмм, спарклайнов, гистограмм, карт, датчиков и индикаторов, вы можете экспортировать отчет в CSV-файл или создать веб-каналы данных, совместимые с Atom, из отчета. Дополнительные сведения см. в статье "Экспорт отчета с разбивкой на страницы" в CSV-файл (построитель отчетов) и создание веб-каналов данных из отчетов (построитель отчетов).

Размер страницы

Расширение отрисовки Excel использует параметры высоты и ширины страницы для определения параметров бумаги листа Excel. Excel пытается сопоставить PageHeight параметры и PageWidth свойства с одним из наиболее распространенных размеров бумаги.

Если это сделать не удается, Excel использует размер страницы по умолчанию для принтера. Ориентация имеет Portrait значение, если ширина страницы меньше высоты страницы. В противном случае для ориентации задано Landscapeзначение .

Имена вкладок листа

При экспорте отчета в Excel разрывы страниц создают страницы отчета, и каждая страница экспортируется на другой лист. Если указать начальное имя страницы отчета, первый лист книги Excel имеет это имя. Так как каждый лист в книге должен иметь уникальное имя, целое число, начиная с двух и добавим по одному, добавляется к имени страницы для каждого листа. Например, если начальное имя страницы — отчет о продажах по финансовому году, второй лист называется отчетом о продажах по финансовому году (2). Третий — это отчет о продажах по финансовому году (3) и т. д.

Если все страницы отчетов, созданные разрывами страниц, предоставляют новые имена страниц, каждый лист имеет связанное имя страницы. Но если эти имена страниц не являются уникальными, листы называются так же, как и начальные имена страниц. Например, если имя страницы двух групп — Sales for NW, на одной вкладке листа есть имя Sales for NW, а также другие продажи для NW (2).

Если отчет не предоставляет начальное имя страницы или имена страниц для разрывов страниц, вкладки листа имеют имена по умолчанию Sheet1, Sheet2 и т. д.

Службы SSRS предоставляют свойства, которые можно задать для отчетов, областей данных, групп и прямоугольников. Эти свойства помогают создавать отчеты, которые можно экспортировать в Excel таким образом. Дополнительные сведения см. в отчетах с разбивкой на страницы (Microsoft построитель отчетов).

Свойства документа

Модуль подготовки отчетов Excel записывает в файл Excel следующие метаданные.

Свойства элемента Report Description
Создано Дата и время выполнения отчета со значением в формате ISO.
Автор Report.Author
Description Report.Description
LastSaved Дата и время выполнения отчета со значением в формате ISO.

Верхние и нижние колонтитулы страницы

Способ отображения заголовка страницы зависит от параметра сведений SimplePageHeaders об устройстве:

  • По умолчанию SimplePageHeaders имеет значение False. В этом случае заголовок отображается в сетке ячеек на листе Excel в верхней части этой сетки.
  • Если SimplePageHeaders задано значение True, заголовок отображается в разделе заголовка листа Excel.

Нижний колонтитул страницы всегда отображается в разделе нижнего SimplePageHeaders колонтитула листа Excel независимо от значения параметра.

Из-за ограничений Excel текстовые поля являются единственным типом элемента отчета, который можно отобразить в разделах верхнего и нижнего колонтитулов Excel.

В области верхнего и нижнего колонтитулов Excel допускаются значения с максимальной длиной в 256 символов, включая разметку. Если это ограничение превышено, отрисовщик Excel удаляет символы разметки, начиная с конца строки верхнего или нижнего колонтитула, чтобы уменьшить количество общих символов. Если все символы разметки удаляются и длина по-прежнему превышает максимальную, строка усечена начиная с конца.

Параметры SimplePageHeader

  • Если для параметра сведений SimplePageHeaders об устройстве задано значение False, строки листа, содержащие заголовки, становятся заблокированными. Эту панель можно закрепить или освободить в Excel.

  • Если параметры Excel для печати заголовков настроены для печати этих строк заголовков, эти заголовки печатаются на каждой странице листа, кроме листа карты документов.

  • В заголовке построитель отчетов страницы окно свойств:

    • Если печать на первой странице не выбрана, заголовок не добавляется на первую страницу отчета.
    • Если печать на последней странице не выбрана, заголовок не добавляется на последнюю страницу отчета.

Интерактивность

В Excel поддерживаются некоторые интерактивные элементы. В следующих разделах рассматривается интерактивность.

Показать и скрыть

Существуют ограничения, связанные с тем, как Excel управляет скрытыми и отображаемыми элементами отчета при их экспорте. Группы, строки и столбцы, содержащие элементы отчета, которые могут развернуть и свернуть, отображаются в виде структур Excel. Но структуры Excel расширяют и свернутые строки и столбцы по всей строке или столбцу. В результате элементы отчета можно свернуть, которые не предназначены для свернутого свертывания. Кроме того, выстраивание символов Excel может загромождаться перекрывающимися контурами.

Для решения этих проблем модуль подготовки отчетов Excel использует следующие правила подготовки:

  • Элемент отчета, который может развернуть и свернуть, ближайший к левому верхнему углу, также может развернуть и свернуть в Excel. Другие элементы отчета, которые совместно используют вертикальное или горизонтальное пространство с этим левым элементом, не могут развернуть или свернуть в Excel.

  • Чтобы определить, является ли область данных сворачиваемой по строкам или столбцам, учитывается позиция двух элементов:

    • Элемент отчета, который управляет видимостью
    • Область данных, которая может развернуть и свернуть

    Правила, которые применяются, зависят от относительной позиции этих двух элементов:

    • Если элемент, который управляет видимостью, отображается выше или ниже элемента, который расширяется и свернут, элемент сворачивается по строкам.
    • Если элемент, который управляет видимостью, отображается рядом с элементом, который расширяется и свернут, элемент сворачивается по столбцам.
    • Если элемент, который управляет видимостью, отображается то же расстояние выше и рядом с элементом, который расширяется и свернут, элемент сворачивается по строкам.
  • Чтобы определить, где помещаются автоматические промежуточные итоги в отрисованном отчете, модуль отрисовки проверяет первый экземпляр динамического члена. Если статический элемент однорангового узла отображается непосредственно над ним, динамический элемент считается промежуточным. Контуры задаются, чтобы указать, что эти данные являются сводными данными. Если у динамического элемента нет статических одноуровневых элементов, то подытогом будет первый экземпляр элемента.

  • Из-за ограничения Excel структуры могут быть вложены только до семи уровней.

Карта документов

Если в отчете существуют метки карты документов, карта документа отображается как лист обложки Excel. Лист называется картой документов и находится в первой позиции табуляции в книге.

Свойство DocumentMapLabel элемента отчета или группы определяет ее метку на карте документа. Метки перечислены в том порядке, в который они отображаются в отчете, начиная с первой строки в первом столбце. Каждая ячейка метки схемы документа углубляется настолько, насколько глубоко (по уровням) она расположена в отчете. При углублении на каждый последующий уровень происходит перемещение метки в следующий столбец. В Excel поддерживается до 256 уровней вложения структур.

Схема документа отображается в виде свертываемой структуры Excel. Структура совпадает с вложенной структурой схемы документа. Развернутое и свернутое состояния структуры начинаются со второго уровня.

Корневой узел карты — это имя отчета или его имя файла без расширения RDL. Это имя не является интерактивным.

Отрисовщик использует 10-точечный шрифт Arial для ссылок на карту документов.

Ссылка детализации, отображаемая в текстовом поле, отображается в виде гиперссылки Excel в ячейке, в которой отображается текст. Ссылка детализации для изображения или диаграммы отображается в виде гиперссылки Excel на изображении. При выборе ссылки детализации он открывает браузер клиента по умолчанию и переходит в html-представление целевого объекта.

Гиперссылка, которая отображается в текстовом поле, отображается в виде гиперссылки Excel в ячейке, в которой отображается текст. Гиперссылка для изображения или диаграммы отображается в виде гиперссылки Excel на изображении. При выборе гиперссылки он открывает браузер клиента по умолчанию и переходит к целевому URL-адресу.

Интерактивная сортировка

В построитель отчетов можно выбрать кнопки в отчете, чтобы изменить порядок отображения строк и столбцов в таблицах и матрицах. Excel не поддерживает этот тип интерактивной сортировки.

Закладки

Ссылка на закладку в текстовом поле отображается в виде гиперссылки Excel в ячейке, в которой отображается текст. Ссылка на закладку для изображения или диаграммы отображается в виде гиперссылки Excel на изображении. При выборе закладки она переходит в ячейку Excel, в которой отображается элемент отчета с закладками.

Изменение отчетов во время выполнения

В некоторых сценариях требуется отчет для отрисовки в нескольких форматах. Если невозможно создать макет отчета, который отображает нужный способ во всех необходимых форматах, можно использовать RenderFormat встроенное глобальное значение. При использовании этого значения можно условно изменить внешний вид отчета во время выполнения. Таким образом можно скрыть или отобразить элементы отчета в зависимости от используемого отрисовщика, чтобы получить лучшие результаты в каждом формате. Дополнительные сведения см. в статьях о встроенных глобальных и пользовательских ссылках в отчете с разбивкой на страницы (построитель отчетов).

Устранение неполадок при экспорте в Excel

При использовании учетной записи виртуальной службы и учетной записи выполнения экспорт в Excel может завершиться ошибкой. В частности, доступ к разделу реестра может быть запрещен.

Чтобы обойти эту проблему, вы можете предоставить разрешение на чтение учетной записи выполнения для затронутой записи реестра в ветви учетной записи виртуального пользователя. Например, одна из возможных записей реестра .HKEY_USERS\S-1-5-80-4050220999-2730734961-1537482082-519850261-379003301\Software\Microsoft\Avalon.Graphics Затем необходимо перезагрузить компьютер.