Data

Ouvrir des classeurs Excel dans PBIRS On-Premise grâce à OOS

Mai 4, 2023

Celine VICENTE

Si vous souhaitez consulter des classeurs Excel directement depuis le portail web de Power BI Report Server (PBIRS), sans avoir à les télécharger puis les ouvrir avec l’application du bureau Excel, cet article est fait pour vous ! Nous allons voir comment grâce à Office Online Serveur (OOS), nous allons pouvoir répondre à ce besoin.

Architecture

Dans notre exemple, nous avons un environnement avec 2 serveurs « On premise » :

  • un premier serveur S1 sur lequel est installé des instances SQL et SQL Server Analysis Services (SSAS)
  • et un second serveur S2 dédié à l’instance PBIRS (sur-ensemble de SQL Server Reporting Services (SSRS))

Le besoin exprimé est d’installer une instance OOS sur un troisième serveur S3 (de type Windows Server 2019 x64). OOS est une solution de serveur proposée par Microsoft qui permet aux utilisateurs d’accéder à des applications Office en ligne telles que Word, Excel et PowerPoint à partir d’un navigateur web. Le but ici est donc de permettre à notre portail web PBIRS d’utiliser OOS pour lui permettre d’afficher le contenu de documents Excel.

Installation et configuration d’OOS

Prérequis

La première étape consiste à installer les logiciels prérequis pour OOS, sur notre serveur S3. Pour cela il faut exécuter les commandes PowerShell suivantes :

Add-WindowsFeature Web-Server,Web-Mgmt-Tools,Web-Mgmt-Console,Web-WebServer,Web-Common-Http,Web-Default-Doc,Web-Static-Content,Web-Performance,Web-Stat-Compression,Web-Dyn-Compression,Web-Security,Web-Filtering,Web-Windows-Auth,Web-App-Dev

Add-WindowsFeature Web-ISAPI-Ext,Web-ISAPI-Filter,Web-Includes, Windows-Identity-Foundation,Server-Media-Foundation

Add-WindowsFeature NET-Framework-Features,NET-Framework-Core, NET-HTTP-Activation,NET-Non-HTTP-Activ, Web-Net-Ext45,Web-Asp-Net45, NET-Framework-45-Features, NET-Framework-45-Core, NET-WCF-HTTP-Activation45

A la fin de l’installation, Internet Information Services (IIS) est installé sur notre serveur avec les fonctionnalités nécessaires à l’hébergement d’OOS.

 Il nous faut également installer les logiciels suivants en prérequis :

Installation d’OOS

Nous allons passer maintenant à l’installation d’OOS. Pour cela, il faut télécharger la dernière version d’Office Online Server ainsi que le langage Pack :

Il suffit ensuite de monter l’ISO, d’exécuter le setup.exe et de suivre les étapes.

Microsoft recommande d’installer Office Online Server sur le lecteur système.

Une fois les binaires installés, lançons l’installation du langage Pack. A la fin, redémarrer le serveur. Le service Office Online doit être démarré avec le compte Local System.

Configuration de la ferme OOS

Dans une console PowerShell en tant qu’Administrateur, exécutons les commandes suivantes :

  • Pour charger le module PowerShell pour OOS
Import-Module -Name OfficeWebApps
  • Pour créer la WebApp OOS avec l’URL https://oos.maWebApp.fr accessible en http. Il est également possible de créer une connexion https si nous disposons d’un certificat.
New-OfficeWebAppsFarm -InternalURL "https://oos.maWebApp.fr" -AllowHttp -EditingEnabled

Une fois la commande terminée, l’application web est accessible via un navigateur et peut être validée via l’URL https://oos.maWebApp.fr/hosting/discovery. Si OOS fonctionne comme prévu, nous voyons apparaître un fichier XML de découverte WOPI dans le navigateur web.

Customisation de la ferme OOS

Dans une console PowerShell en tant qu’Administrateur, exécutons les commandes suivantes :

  • Pour configurer la taille maximale de classeur Excel. Sachant que la taille maximale pour tous les fichiers dans Power BI Report Server est de 100 Mo.
Set-OfficeWebAppsFarm -ExcelWorkbookSizeMax 100
  • Pour autoriser des connexions actives à Analysis Services des classeurs Excel avec EffectiveUserName
Set-OfficeWebAppsFarm -ExcelUseEffectiveUserName:$true
Set-OfficeWebAppsFarm -ExcelAllowExternalData:$true
Set-OfficeWebAppsFarm -ExcelWarnOnDataRefresh:$false

Configuration de Power BI Report Server

Configuration du serveur OOS sur Power BI

Pour configurer le portail web PBIRS, il suffit de sélectionner « la roue » de Paramètres puis « Paramètres de site ».

Dans l’URL du point de terminaison de découverte d’OOS, renseignons l’URL du serveur OOS. Dans notre exemple nous indiquons : https://oos.maWebApp.fr/hosting/discovery

Configuration supplémentaire d’Analysis Service

Pour permettre d’actualiser une connexion à un cube Analysis Service (AS) dans un fichier Excel sur le portail web PBIRS, il est nécessaire de renseigner le compte machine du serveur OOS comme administrateur de l’instance AS.

Dans l’exemple ci-dessous, nous ajoutons le compte CONTOSOSSAS-Admin en tant qu’administrateur de l’instance AS, il convient donc de renseigner ici le compte de service OOS.

source : Microsoft

Affichage d’Excel dans PBIRS

Nous pouvons désormais ouvrir un classeur Excel directement dans PBIRS.

Limitations et difficultés rencontrées

Difficultés rencontrées

Nous avons créer des SPN et délégations Active Directory afin de tester la connexion d’un fichier Excel à une base de données SQL. Tests qui se sont avérés non concluants : impossibilité de rafraichir un classeur Excel connecté à une base de données SQL via le portail PBIRS.

La propagation de l’identité de l’utilisateur « PC > serveur PBIRS > serveur OOS > cube » ne se fait pas nativement. Il faut utiliser une des deux solutions suivantes :

  • Activation de Kerberos. C’est un protocole d’authentification utilisé pour vérifier l’identité d’un utilisateur ou d’un hôte
  • Utilisation de la propriété EffectiveUserName. C’est une propriété de chaîne de connexion SSAS contenant le nom de l’utilisateur qui accède à un rapport. Dans OOS, nous pouvons utiliser cette propriété pour transférer l’identité de l’utilisateur qui affiche le rapport dans Analysis Services. L’identité par utilisateur est ainsi permise sans devoir configurer la délégation Kerberos contrainte.

Limitations rencontrées

Si l’ouverture des fichiers Excel se fait sans souci sur le portail web, il n’est pas possible de faire tout ce que nous pourrions faire dans l’application Excel. En effet, l’utilisation d’Excel dans PBIRS est limité :

  • à l’accès aux classeurs en lecture seule : nous ne pouvons pas saisir de données dans le fichier
  • s’il est possible de modifier les données d’un Tableau Croisé Dynamique (TDC) en jouant sur les filtres, les mesures et les axes à afficher, en revanche :
    • lorsque nous téléchargeons le fichier, nous récupérons la version d’origine, non modifiée
    • il ne s’enregistre pas sur le serveur à la fermeture du fichier, ainsi lorsque nous ouvrons à nouveau le fichier, nous retrouvons la version d’origine
  • l’actualisation planifiée n’est pas prise en charge pour les classeurs Excel dans PBIRS

Pour aller plus loin, nous abordons dans un autre article « Batch PowerShell d’envoi de fichiers Excel actualisés depuis PBIRS » le sujet de la récupération, l’actualisation et le chargement de classeurs Excel sur PBIRS ainsi que l’envoi de ces fichiers par mail de manière automatisée.

Merci de nous avoir lu !

Découvrez en plus sur notre offre Modernisation Data en vous rendant sur notre page dédiée.

0 commentaires

Soumettre un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Découvrez nos autres articles

git et la face cachée du Rebase

git et la face cachée du Rebase

"Faire une rebase ? *sight* heu... ok..." Jean-Michel Fullstack - Développeur fébrile Jean-Michel est inquiet. En effet, lorsque nous collaborons à plusieurs sur un projet, quelque soit les technologies utilisées, il est important de garder à l'esprit que notre...

lire plus
Aller au contenu principal