Exportation d’un rapport paginé dans Microsoft Excel (Générateur de rapports)

S’applique à : Générateur de rapports Microsoft (SSRS) Power BI Report Builder Report Designer dans SQL Server Data Tools

Lorsque vous utilisez Power BI ou SQL Server Reporting Services (SSRS), vous pouvez utiliser l’extension de rendu Excel pour exporter des rapports paginés vers Microsoft Excel. La largeur des colonnes exportées dans Excel imite la largeur des colonnes dans les rapports. Toutefois, vous pouvez restructurer les données de rapport ou les traiter davantage dans un classeur.

Cet article décrit différents aspects du processus d’exportation, tels que la prise en charge du renderer pour les fonctionnalités interactives et le placement des données dans les cellules. Les limitations d’Excel et du renderer sont également abordées.

Format d'exportation

L’extension de rendu Excel exporte des rapports au format Office Open XML. Le type de contenu des fichiers générés par le renderer est application/vnd.openxmlformats-officedocument.spreadsheetml.sheet et l’extension de fichier est .xlsx.

Vous pouvez modifier certains paramètres par défaut pour ce convertisseur en modifiant les paramètres d'informations de périphérique. Pour plus d’informations, consultez Paramètres d’informations de périphérique Excel.

Pour plus d’informations sur l’exportation d’un rapport au format Excel, consultez Exporter des rapports paginés (Générateur de rapports).

Important

Lorsque vous définissez un paramètre de rapport de type String, l’utilisateur est présenté avec une zone de texte qui peut prendre n’importe quelle valeur. Si le paramètre de rapport n’est pas lié à un paramètre de requête et que les valeurs des paramètres sont incluses dans le rapport, il existe un risque de sécurité. Plus précisément, l’utilisateur du rapport peut entrer la syntaxe d’expression, le code de script ou une URL comme valeur de paramètre. Par conséquent, l’utilisateur peut entrer un script malveillant ou un lien malveillant. Si le rapport est exporté vers Excel, d’autres utilisateurs peuvent l’afficher. S’ils sélectionnent le contenu du paramètre rendu, ils risquent d’exécuter par inadvertance un script malveillant ou d’accéder à un site malveillant.

Pour réduire le risque d'exécution accidentelle de scripts malveillants, ouvrez les rapports rendus uniquement à partir de sources approuvées. Pour plus d’informations sur la sécurisation des rapports, consultez Sécuriser les rapports et les ressources.

Limitations d’Excel

Excel place des limitations sur les rapports exportés en raison des fonctionnalités d’Excel et de ses formats de fichiers. Les limitates suivantes sont les plus significatives :

  • La largeur maximale des colonnes est de 255 caractères ou 1726,5 points. Le renderer ne vérifie pas que la largeur de colonne est inférieure à cette limite.
  • Le nombre maximal de caractères dans une cellule est de 32 767. Si cette limite est dépassée, le renderer affiche un message d’erreur.
  • La hauteur de ligne maximum est de 409 points. Si le contenu d’une ligne entraîne une hauteur de ligne supérieure à 409 points, la cellule Excel affiche une quantité partielle de texte pouvant atteindre 409 points. Le reste du contenu de la cellule se trouve toujours dans la cellule, jusqu’à 32 767 caractères maximum autorisés.
  • Étant donné que la hauteur maximale de ligne est de 409 points, si la hauteur définie d’une cellule dans le rapport est supérieure à 409 points, Excel fractionne le contenu de la cellule en plusieurs lignes.
  • Le nombre maximal de feuilles de calcul n’est pas défini dans Excel. Toutefois, les facteurs externes, tels que la mémoire et l’espace disque, peuvent entraîner l’application de limitations.
  • Dans les plans, Excel autorise jusqu'à sept niveaux imbriqués.
  • La disponibilité d’un plan dépend de la position de l’élément de rapport qui contrôle la visibilité d’un autre élément. Un plan n’est pas disponible dans les cas suivants :
    • L’élément de rapport de contrôle n’est pas dans la ligne précédente ou suivante par rapport à l’élément développé ou réduit.
    • L’élément de rapport de contrôle n’est pas dans la colonne de l’élément en cours d’expansion ou réduit.

Pour plus d’informations sur les limitations d’Excel, consultez Spécifications et limites relatives à Excel.

Zones de texte et texte

Les limitations suivantes s'appliquent aux zones de texte et au texte :

  • Les valeurs des zones de texte qui sont des expressions ne sont pas converties en formules Excel. La valeur de chaque zone de texte est évaluée durant le traitement du rapport. L'expression évaluée est exportée en tant que contenu de chaque cellule Excel.
  • Chaque zone de texte est affichée dans une cellule Excel. Pour la taille de police, le visage de police, la décoration et le style de police, la mise en forme est prise en charge sur le texte de la cellule.
  • Excel ne prend pas en charge la mise en forme de texte surligne.
  • Excel ajoute une marge intérieure par défaut d'environ 3,75 points à gauche et à droite des cellules. Si le remplissage d’une zone de texte est inférieur à 3,75 points et que la zone n’est pas suffisamment large pour prendre en charge le texte, le texte peut s’encapsuler à une nouvelle ligne dans Excel. Pour corriger ce problème, augmentez la largeur de la zone de texte dans le rapport.

Images

Les limitations suivantes s'appliquent aux images :

  • Les images d’arrière-plan pour les éléments de rapport sont ignorées, car Excel ne prend pas en charge les images d’arrière-plan pour les cellules individuelles.
  • L'extension de rendu Excel prend en charge uniquement l'image d'arrière-plan du corps de rapport. Si une image d'arrière-plan de corps du rapport est affichée dans le rapport, l'image est rendue sous la forme d'une image d'arrière-plan de feuille de calcul.

Rectangles

La limitation suivante s’applique aux rectangles : les rectangles dans les pieds de page de rapport ne sont pas exportés vers Excel. Toutefois, les rectangles dans le corps du rapport, les cellules de tableau matriciel et d’autres composants similaires sont affichés sous la forme d’une plage de cellules Excel.

En-têtes et pieds de page de rapport

Les limitations suivantes s'appliquent aux en-têtes et pieds de page de rapport :

  • Les en-têtes et les pieds de page Excel prennent en charge un maximum de 256 caractères, y compris la balise. L'extension de rendu tronque la chaîne à 256 caractères.
  • SSRS ne prend pas en charge les marges sur les en-têtes de rapport et les pieds de page. Dans Excel, ces valeurs de marge sont définies sur zéro.
  • Lorsque vous imprimez un rapport exporté vers Excel, vos paramètres d’imprimante peuvent affecter le rendu. Plus précisément, si un en-tête ou un pied de page du rapport contient plusieurs lignes de données, il se peut que vous ne voyiez pas plusieurs lignes dans l’impression.
  • Les zones de texte d’un en-tête ou d’un pied de page conservent leur mise en forme, mais pas leur alignement lorsqu’elles sont exportées vers Excel. Les espaces de début et de fin sont supprimés lorsque le rapport est rendu dans Excel, ce qui modifie l’alignement.

Cellules fusionnées

La limitation suivante s’applique à la fusion de cellules : si les cellules sont fusionnées, le texte n’est pas encapsulé correctement.

Le convertisseur Excel est essentiellement un convertisseur de mise en page. Son objectif est de répliquer la disposition du rapport rendu aussi étroitement que possible dans une feuille de calcul Excel. Par conséquent, les cellules peuvent être fusionnées dans la feuille de calcul pour conserver la disposition du rapport. Les cellules fusionnées peuvent entraîner des problèmes, car la fonctionnalité de tri dans Excel nécessite que les cellules soient fusionnées de manière spécifique pour que le tri fonctionne correctement. Par exemple, si vous souhaitez trier une plage de cellules, Excel exige que chaque cellule fusionnée de la plage ait la même taille que les autres cellules fusionnées de la plage.

La réduction du nombre de cellules fusionnées dans vos feuilles de calcul Excel facilite le tri des feuilles de calcul. Les points suivants peuvent vous aider à réduire le nombre de cellules fusionnées pendant le processus d’exportation.

  • La raison la plus courante pour laquelle les cellules sont fusionnées est que les éléments ne sont pas alignés à gauche ou à droite. Vous pouvez généralement résoudre le problème en alignant les bords gauche et droit de tous les éléments de rapport et en donnant aux éléments la même largeur.
  • Même lorsque vous alignez tous les éléments, certaines colonnes sont toujours fusionnées dans de rares cas. La conversion d’unités internes et l’arrondi pendant le processus de rendu peuvent entraîner la fusion des cellules. Dans le langage de définition de rapport (RDL), vous pouvez spécifier des positions et des tailles dans différentes unités, telles que pouces, pixels, centimètres et points. En interne, Excel utilise des points. Par conséquent, les pouces et les centimètres sont convertis en points pendant le rendu. Pour réduire les opérations de conversion pendant le rendu et l’inexactitude potentielle de l’arrondi, envisagez de spécifier toutes les mesures en points entiers. Un centimètre est égal à 28,35 points.

Groupes de lignes et groupes de colonnes de rapport

Les rapports qui incluent des groupes de lignes ou des groupes de colonnes contiennent des cellules vides lorsque vous les exportez dans Excel. L’image suivante montre un rapport qui regroupe les lignes sur la distance de trajet. Chaque distance de trajet domicile-travail peut contenir plusieurs clients.

Capture d’écran montrant un rapport dans le portail web SSRS. Chaque ligne de distance de trajet dans le rapport couvre plusieurs lignes client.

Lorsque vous exportez le rapport vers Excel, la distance de trajet s’affiche uniquement dans une cellule de la colonne Distance commutée. Lorsque vous concevez le rapport, vous pouvez aligner le texte sur le haut, le milieu ou le bas du groupe de lignes. Cet alignement détermine si la valeur se trouve dans le premier, le milieu ou la dernière cellule du rapport exporté. Les autres cellules de cette colonne du groupe sont vides. La colonne Name , qui contient des noms de clients, n’a pas de cellules vides.

L’image suivante montre le rapport après votre exportation vers Excel. Les cellules vides sont grisées dans l’image, mais cette trame de fond ne fait pas partie du rapport exporté.

Capture d’écran d’un rapport exporté dans Excel. Chaque ligne de distance est d’abord dans une plage qui couvre plusieurs lignes clientes. Les autres cellules de la plage sont grises.

Après avoir exporté un rapport qui contient des groupes de lignes ou des groupes de colonnes dans Excel, vous devez modifier le rapport avant de pouvoir afficher les données exportées dans un tableau croisé dynamique. Vous devez ajouter la valeur de groupe aux cellules manquantes. La feuille de calcul devient ensuite un tableau plat avec des valeurs dans toutes les cellules. L’image suivante montre la feuille de calcul mise à jour.

Capture d’écran d’un rapport exporté dans Excel, sans cellules vides. Chaque ligne contient une valeur de distance et un nom, entre autres données.

Si vous créez un rapport dans le but spécifique de l’exporter vers Excel pour une analyse plus approfondie des données du rapport, n’envisagez pas de regrouper des lignes ou des colonnes dans votre rapport.

Renderer Excel

Le code XML suivant montre l’élément de l’extension de rendu Excel dans les fichiers de configuration RSReportServer et RSReportDesigner :

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

Le renderer Excel a les valeurs et limites par défaut suivantes :

Propriété Valeur
Nombre maximal de colonnes par feuille de travail 16 384
Nombre maximal de lignes par feuille de travail 1,048,576
Nombre de couleurs autorisé dans une feuille de travail Approximativement 16 millions (couleurs 24 bits)
Fichiers compressés ZIP Compression ZIP
Famille de polices par défaut Calibri
Taille de police par défaut 11 points
Hauteur de ligne par défaut 15 points

Étant donné que le rapport définit explicitement la hauteur de ligne, la hauteur de ligne par défaut affecte uniquement les lignes qui sont dimensionnées automatiquement pendant l’exportation vers Excel.

Éléments de rapport dans Excel

Lorsque vous exportez un rapport vers Excel, les composants suivants sont affichés sous la forme d’une plage de cellules Excel : sous-rapports, rectangles, corps du rapport et régions de données. Les zones de texte, les images, les graphiques, les barres de données, les graphiques sparkline, les cartes, les jauges et les indicateurs sont affichés dans une cellule Excel. Mais cette cellule peut être fusionnée avec d’autres cellules. La disposition du reste du rapport détermine si la fusion se produit.

Les images, les graphiques, les graphiques sparkline, les barres de données, les cartes, les jauges, les indicateurs et les lignes sont positionnés dans une cellule Excel, mais elles se trouvent au-dessus de la grille de cellules. Les lignes sont rendues sous forme de bordures de cellules.

Les graphiques, les graphiques sparkline, les barres de données, les cartes, les jauges et les indicateurs sont exportés sous forme d’images. Les données qu’ils décrivent ne sont pas exportées avec elles. Les données ne sont pas disponibles dans le classeur Excel, sauf si vous l’incluez dans une colonne ou une ligne dans une région de données d’un rapport.

Si vous souhaitez utiliser des données pour les graphiques, les graphiques sparkline, les barres de données, les cartes, les jauges et les indicateurs, vous pouvez exporter le rapport vers un fichier CSV ou générer des flux de données conformes à Atom à partir du rapport. Pour plus d’informations, consultez Exporter un rapport paginé vers un fichier CSV (Générateur de rapports) et Générer des flux de données à partir de rapports (Générateur de rapports).

Taille de page

L’extension de rendu Excel utilise les paramètres de hauteur et de largeur de page pour déterminer les paramètres de papier de la feuille de calcul Excel. Excel essaie de faire correspondre le paramétrage des propriétés PageHeight et PageWidth à l’un des formats de papier les plus courants.

Si aucune correspondance n'est trouvée, Excel utilise la taille de la page par défaut pour l'imprimante. L’orientation est définie Portrait si la largeur de la page est inférieure à la hauteur de la page. Sinon, l’orientation est définie sur Landscape.

Noms des onglets de feuille de calcul

Lorsque vous exportez un rapport vers Excel, les sauts de page créent les pages de rapport et chaque page est exportée vers une autre feuille de calcul. Si vous fournissez un nom de page initial pour le rapport, la première feuille de calcul du classeur Excel porte ce nom. Étant donné que chaque feuille de calcul d’un classeur doit avoir un nom unique, un entier commençant à deux et incrémenté par un est ajouté au nom de la page pour chaque feuille de calcul. Par exemple, si le nom de la page initiale est Sales Report by Fiscal Year, la deuxième feuille de calcul est nommée Sales Report by Fiscal Year (2). Le troisième est nommé Sales Report by Fiscal Year (3) et ainsi de suite.

Si toutes les pages de rapport créées par des sauts de page fournissent de nouveaux noms de page, chaque feuille de calcul a le nom de page associé. Toutefois, si ces noms de page ne sont pas uniques, les feuilles de calcul sont nommées de la même façon que les noms de page initiaux. Par exemple, si le nom de la page de deux groupes est Sales for NW, un onglet de feuille de calcul a le nom Sales for NW et l’autre Sales for NW (2).

Si le rapport ne fournit pas de nom de page initial ou de noms de page pour les sauts de page, les onglets de feuille de calcul ont les noms par défaut Sheet1, Sheet2, et ainsi de suite.

SSRS fournit des propriétés que vous pouvez définir pour les rapports, les régions de données, les groupes et les rectangles. Ces propriétés vous aident à créer des rapports que vous pouvez exporter vers Excel d’une manière souhaitée. Pour plus d’informations, consultez Pagination dans les rapports paginés (Microsoft Générateur de rapports).

Propriétés du document

Le convertisseur Excel écrit les métadonnées suivantes dans le fichier Excel.

Propriétés des éléments de rapport Description
Date de création Date et heure d'exécution du rapport sous la forme d'une valeur de date/d'heure ISO.
Auteur Report.Author
Description Report.Description
LastSaved Date et heure d'exécution du rapport sous la forme d'une valeur de date/d'heure ISO.

En-têtes et pieds de page

La façon dont l’en-tête de page est rendu dépend du paramètre d’informations SimplePageHeaders sur l’appareil :

  • Par défaut, SimplePageHeaders la valeur False est définie. Dans ce cas, l’en-tête est rendu dans la grille de cellules de la feuille de calcul Excel, en haut de cette grille.
  • Si SimplePageHeaders la valeur est True, l’en-tête est affiché dans la section d’en-tête de feuille de calcul Excel.

Le pied de page est toujours rendu dans la section pied de page de la feuille de calcul Excel, quelle que soit la valeur du SimplePageHeaders paramètre.

En raison des limitations d’Excel, les zones de texte sont le seul type d’élément de rapport qui peut être rendu dans les sections d’en-tête et de pied de page Excel.

Les sections d'en-tête et de pied de page Excel prennent en charge un maximum de 256 caractères, y compris la balise. Si cette limite est dépassée, le renderer Excel supprime les caractères de balisage commençant à la fin de la chaîne d’en-tête ou de pied de page pour réduire le nombre de caractères totaux. Si tous les caractères de balisage sont supprimés et que la longueur dépasse toujours le maximum, la chaîne est tronquée à partir de la fin.

Paramètres SimplePageHeader

  • Lorsque le paramètre d’informations SimplePageHeaders sur l’appareil a la valeur False, les lignes de feuille de calcul qui contiennent les en-têtes deviennent verrouillées. Vous pouvez figer ou libérer le volet dans Excel.

  • Si les paramètres Excel pour l’impression de titres sont configurés pour imprimer ces lignes d’en-tête, ces en-têtes sont imprimés sur chaque page de feuille de calcul, à l’exception de la feuille de couverture de la carte de document.

  • Dans le Fenêtre Propriétés d’en-tête de page Générateur de rapports :

    • Si l’option Imprimer sur la première page n’est pas sélectionnée, l’en-tête n’est pas ajouté à la première page de rapport.
    • Si l’option Imprimer sur la dernière page n’est pas sélectionnée, l’en-tête n’est pas ajouté à la dernière page de rapport.

Interactivité

Certains éléments interactifs sont pris en charge dans Excel. Les sections suivantes décrivent l’interactivité.

Afficher et masquer

Excel gère les éléments de rapport masqués et affichés lorsqu’ils sont exportés. Les groupes, les lignes et les colonnes qui contiennent des éléments de rapport qui peuvent se développer et réduire sont affichés en tant que plan Excel. Toutefois, Excel décrit l’extension et la réduction des lignes et des colonnes sur l’ensemble de la ligne ou de la colonne. Par conséquent, les éléments de rapport peuvent être réduits qui ne sont pas destinés à être réduits. En outre, les symboles de plan d’Excel peuvent devenir encombrés de contours superposés.

Pour résoudre ces problèmes, l’extension de rendu Excel utilise les règles de plan suivantes :

  • L’élément de rapport qui peut se développer et réduire le plus proche du coin supérieur gauche peut également développer et réduire dans Excel. D’autres éléments de rapport qui partagent un espace vertical ou horizontal avec cet élément en haut à gauche ne peuvent pas développer ou réduire dans Excel.

  • Pour déterminer si une région de données est réductible par lignes ou colonnes, la position de deux éléments est prise en compte :

    • Élément de rapport qui contrôle la visibilité
    • Région de données qui peut se développer et réduire

    Les règles qui s’appliquent dépendent de la position relative de ces deux éléments :

    • Si l’élément qui contrôle la visibilité apparaît au-dessus ou en dessous de l’élément qui se développe et réduit, l’élément est réductible par lignes.
    • Si l’élément qui contrôle la visibilité apparaît à côté de l’élément qui se développe et se réduit, l’élément est réductible par colonnes.
    • Si l’élément qui contrôle la visibilité apparaît la même distance au-dessus et à côté de l’élément qui se développe et s’réduit, l’élément est réductible par lignes.
  • Pour déterminer où les sous-totaux automatiques sont placés dans le rapport rendu, l’extension de rendu examine la première instance d’un membre dynamique. Si un membre statique homologue apparaît immédiatement au-dessus de celui-ci, le membre dynamique est supposé être le sous-total. Les structures sont configurées pour indiquer que ces données sont des données de synthèse. Si un membre dynamique n'a pas de frère statique, la première instance de l'instance est le sous-total.

  • En raison d’une limitation Excel, les contours ne peuvent être imbriqués que jusqu’à sept niveaux.

Plan du document

Si des étiquettes de carte de documents existent dans le rapport, une carte de documents est affichée sous la forme d’une feuille de calcul de couverture Excel. La feuille de calcul est nommée Carte de documents et se trouve à la première position de tabulation dans le classeur.

La DocumentMapLabel propriété d’un élément ou d’un groupe de rapports détermine son étiquette dans le mappage de documents. Les étiquettes sont répertoriées dans l’ordre dans lequel elles apparaissent dans le rapport, en commençant à la première ligne, dans la première colonne. Chaque cellule de l'étiquette de l'explorateur de documents est mise en retrait du nombre de niveaux du rapport. Chaque niveau de mise en retrait est représenté en plaçant l'étiquette dans une colonne suivante. Excel prend en charge jusqu'à 256 niveaux d'imbrication de plan.

Le plan de l'explorateur de documents est rendu sous la forme d'un plan réductible Excel. La structure du plan correspond à la structure imbriquée de l'explorateur de documents. L'état développé ou réduit du plan commence au deuxième niveau.

Le nœud racine de la carte est le nom du rapport ou son nom de fichier sans l’extension .rdl. Ce nom n’est pas interactif.

Le renderer utilise une police Arial à 10 points pour les liens de la carte de documents.

Un lien d’extraction qui s’affiche dans une zone de texte est affiché sous la forme d’un lien hypertexte Excel dans la cellule dans laquelle le texte est rendu. Un lien d’extraction pour une image ou un graphique est affiché en tant que lien hypertexte Excel sur l’image. Lorsque vous sélectionnez un lien d’extraction, il ouvre le navigateur par défaut du client et accède à la vue HTML de la cible.

Un lien hypertexte qui apparaît dans une zone de texte est rendu sous forme de lien hypertexte Excel dans la cellule dans laquelle le texte est rendu. Un lien hypertexte pour une image ou un graphique est affiché en tant que lien hypertexte Excel sur l’image. Lorsque vous sélectionnez un lien hypertexte, il ouvre le navigateur par défaut du client et accède à l’URL cible.

Tri interactif

Dans Générateur de rapports, vous pouvez sélectionner des boutons dans un rapport pour modifier l’ordre dans lequel les tables et les matrices affichent des lignes et des colonnes. Excel ne prend pas en charge ce type de tri interactif.

Signets

Un lien signet dans une zone de texte est affiché sous la forme d’un lien hypertexte Excel dans la cellule dans laquelle le texte est affiché. Un lien signet pour une image ou un graphique est affiché en tant que lien hypertexte Excel sur l’image. Lorsque vous sélectionnez un signet, il accède à la cellule Excel dans laquelle l’élément de rapport avec signet est affiché.

Modifier les rapports au moment de l’exécution

Dans certains scénarios, vous avez besoin d’un rapport pour effectuer un rendu dans plusieurs formats. S’il n’est pas possible de créer une disposition de rapport qui affiche la façon dont vous le souhaitez dans tous les formats requis, vous pouvez utiliser la RenderFormat valeur globale intégrée. Lorsque vous utilisez cette valeur, vous pouvez modifier de manière conditionnelle l’apparence du rapport au moment de l’exécution. De cette façon, vous pouvez masquer ou afficher des éléments de rapport, en fonction du renderer que vous utilisez, pour obtenir les meilleurs résultats dans chaque format. Pour plus d’informations, consultez Références aux collections Globals et User intégrées dans un rapport paginé (Générateur de rapports).

Résoudre les problèmes d’exportation vers Excel

Lorsque vous utilisez le compte de service virtuel et le compte d’exécution, l’exportation vers Excel peut échouer. Plus précisément, l’accès à la clé de Registre peut être refusé.

Pour contourner ce problème, vous pouvez accorder l’autorisation de lecture au compte d’exécution de l’entrée de Registre affectée sous la branche de compte d’utilisateur virtuel. Par exemple, une entrée de registre possible est HKEY_USERS\S-1-5-80-4050220999-2730734961-1537482082-519850261-379003301\Software\Microsoft\Avalon.Graphics. Vous devez ensuite redémarrer votre ordinateur.