Texte/CSV

Résumé

Élément Description
État de publication Disponibilité générale
PRODUITS Excel
Power BI (Modèles sémantiques)
Power BI (Dataflows)
Fabric (Dataflow Gen2)
Power Apps (Dataflows)
Dynamics 365 Customer Insights
Analysis Services
Documentation de référence sur la fonction File.Contents
Lines.FromBinary
Csv.Document

Remarque

Certaines fonctionnalités peuvent être présentes dans un produit, mais pas dans d’autres en raison de planifications de déploiement et de fonctionnalités spécifiques à l’hôte.

Fonctionnalités prises en charge

  • Importer

Se connecter à un fichier texte/CSV local à partir de Power Query Desktop

Pour charger un fichier texte ou CSV local :

  1. Sélectionnez l’option Texte/CSV dans Obtenir les données. Cette action lance un explorateur de fichiers local dans lequel vous pouvez sélectionner votre fichier texte.

    Sélection de fichier texte.

    Sélectionnez Ouvrir pour ouvrir le fichier.

  2. Dans le Navigateur, vous pouvez transformer les données dans l’éditeur Power Query en sélectionnant Transformer les données, ou charger les données en sélectionnant Charger.

    Texte dans le Navigateur.

Se connecter à un fichier texte/CSV local à partir de Power Query Online

Pour charger un fichier texte ou CSV local :

  1. Dans la page Sources de données, sélectionnez Text/CSV.

  2. Dans Paramètres de connexion, entrez le chemin d’accès au fichier texte ou CSV local souhaité.

    Sélection de fichier texte en ligne.

  3. Sélectionnez une passerelle de données locale dans Passerelle de données.

  4. Saisissez un nom d’utilisateur et un mot de passe.

  5. Cliquez sur Suivant.

  6. Dans le Navigateur, sélectionnez Transformer les données pour commencer à transformer les données dans l’éditeur Power Query.

    Transformer les données.

Charger à partir du web

Pour charger un fichier texte ou CSV à partir du web, sélectionnez le Connecteur web, entrez l’adresse web du fichier, et suivez toutes les invites de demande d’informations d’identification.

Délimiteurs Texte/CSV

Power Query traitera le fichiers CSV comme des fichiers structurés avec une virgule comme délimiteur, un cas spécial de fichier texte. Si vous choisissez un fichier texte, Power Query tente automatiquement de déterminer s’il a des valeurs séparées par un délimiteur, ainsi que la nature de celui-ci. S’il peut différer un délimiteur, il le traite automatiquement comme une source de données structurée.

Texte non structuré

Si votre fichier texte n’a pas de structure, vous obtenez une seule colonne avec une nouvelle ligne par ligne encodée dans le texte source. Comme échantillon de texte non structuré, vous pouvez envisager un fichier de Bloc-notes avec le contenu suivant :

Hello world.
This is sample data.

Lorsque vous le chargez, un écran de navigation s’affiche, qui charge chacune de ces lignes dans sa propre ligne.

Chargement de données à partir d’un simple fichier texte non structuré.

Vous ne pouvez configurer qu’une seule chose dans cette boîte de dialogue, à savoir la liste déroulante Origine du fichier. Celle-ci vous permet de sélectionner le jeu de caractères utilisé pour générer le fichier. Actuellement, le jeu de caractères n’est pas inféré, et UTF-8 ne sera inféré que s’il commence par une Nomenclature UTF-8.

Sélection de culture de fichier pour Texte/CSV.

CSV

Vous pouvez trouver un échantillon de fichier CSV ici.

En plus de l’origine du fichier, CSV prend en charge la spécification du délimiteur et de la façon dont la détection du type de données sera gérée.

Chargement de données à partir d’un fichier CSV.

Les délimiteurs disponibles sont les deux-points, la virgule, le signe égal, le point-virgule, l’espace, la tabulation, un délimiteur personnalisé (qui peut une chaîne quelconque) et une largeur fixe (divisant le texte par un nombre standard de caractères).

Sélection de délimiteur pour un fichier CSV.

La liste déroulante finale vous permet de sélectionner la façon dont vous souhaitez gérer la détection du type de données. Celle-ci peut être effectuée sur les 200 premières lignes ou sur le jeu de données entier. Vous pouvez également choisir de ne pas opérer de détection automatique du type de données et laisser toutes les colonnes définie par défaut sur « Texte ». Avertissement : si vous faites cela sur le jeu de données entier, le chargement initial des données dans l’éditeur pourrait être plus lent.

Sélection d’inférence de type de données pour un fichier CSV.

L’inférence pouvant être incorrecte, il est utile de vérifier les paramètres avant le chargement.

Texte structuré

Quand Power Query peut détecter la structure de votre fichier texte, il traite celui-ci comme un fichier de valeurs séparées par des délimiteurs, et vous offre les mêmes options que celles disponibles lors de l’ouverture d’un CSV (qui n’est essentiellement qu’un fichier avec une extension indiquant le type de délimiteur).

Par exemple, si vous enregistrez l’exemple suivant en tant que fichier texte, il est lu comme ayant un délimiteur tabulation plutôt que comme du texte non structuré.

Column 1	Column 2	Column 3
This is a string.	1	ABC123
This is also a string.	2	DEF456

Chargement de données à partir d’un fichier texte structuré.

Cela peut être utilisé pour n’importe quel autre type de fichier basé sur un délimiteur.

Modification de la source

Lors de l’étape de modification de la source, une boîte de dialogue s’affiche, légèrement différente de celle affichée lors du chargement initial. Selon la façon dont vous traitez actuellement le fichier (c’est-à-dire, comme fichier texte ou CSV), un écran affiche une série de listes déroulantes.

Étape de modification de la source sur une requête accédant à un fichier CSV.

La liste déroulante Sauts de ligne vous permet d’indiquer si vous souhaitez appliquer des sauts de ligne entre guillemets ou non.

Modification du style de saut de ligne pour un fichier CSV.

Par exemple, si vous modifiez l’exemple « structuré » fourni ci-dessus, vous pouvez ajouter un saut de ligne.

Column 1	Column 2	Column 3
This is a string.	1	"ABC
123"
This is also a string.	2	"DEF456"

Si l’option Sauts de ligne est définie sur Ignorer les sauts de ligne entre guillemets, le chargement s’opère comme s’il n’y avait pas de saut de ligne (avec un espace supplémentaire).

Chargement d’un fichier CSV en ignorant les sauts de ligne entre guillemets.

Si l’option Sauts de ligne est définie sur Appliquer tous les sauts de ligne, une ligne supplémentaire est chargée, le contenu après les sauts de ligne étant le seul contenu de cette ligne (la sortie exacte peut dépendre de la structure du contenu du fichier).

Chargement d’un fichier CSV en appliquant les sauts de ligne entre guillemets.

La liste déroulante Ouvrir le fichier en tant que vous permet de modifier le type de fichier que vous souhaitez charger, ce qui est important pour la résolution des problèmes. Pour des fichiers structurés qui ne sont pas techniquement des CSV (tel un fichier de valeurs séparées par des tabulations enregistré comme fichier texte), l’option Ouvrir le fichier en tant que devrait toujours être définie sur CSV. Ce paramètre détermine également les listes déroulantes disponibles dans le reste de la boîte de dialogue.

Modification du type de fichier.

Texte/CSV par exemple

Text/CSV par exemple dans Power Query est une fonctionnalité généralement disponible dans Power BI Desktop et Power Query Online. Lorsque vous utilisez le connecteur Text/CSV, vous voyez l’option Extraire une table avec des exemples dans l’angle inférieur gauche du navigateur.

Utilisation de l’option Extraire une table avec des exemples.

Lorsque vous sélectionnez ce bouton, vous êtes dirigé vers la page Extraire une table avec des exemples. Dans cette page, vous spécifiez des exemples de valeurs de sortie pour les données que vous souhaitez extraire de votre fichier Texte/CSV. Une fois que vous avez rempli la première cellule de la colonne, les autres cellules de celle-ci sont remplies. Pour que les données soient extraites correctement, il se peut que vous deviez remplir plusieurs cellules de la colonne. Si certaines cellules de la colonne sont incorrectes, vous pouvez corriger la première cellule incorrecte et les données seront extraites à nouveau. Vérifiez les données dans les premières cellules pour vous assurer qu’elles ont été correctement extraites.

Remarque

Nous vous recommandons d’entrer les exemples dans l’ordre des colonnes. Une fois la colonne correctement remplie, créez une nouvelle colonne et commencez à y entrer des exemples.

Spécifier des exemples de valeurs de sortie pour extraire des données.

Une fois que vous avez fini de construire cette table, vous pouvez choisir de charger ou de transformer les données. Notez comment les requêtes résultantes contiennent une ventilation détaillée de toutes les étapes qui ont été inférées pour l’extraction de données. Ces étapes sont simplement des étapes de requête ordinaires que vous pouvez personnaliser en fonction des besoins.

Ventilation détaillée des étapes d’extraction de données.

Dépannage

Chargement de fichiers à partir du web

Si vous demandez des fichiers texte/CSV sur le web et promouvez des en-têtes, et que vous récupérez suffisamment de fichiers pour vous préoccuper d’une éventuelle limitation, vous devriez envisager d’envelopper votre Web.Contents appel avec Binary.Buffer(). Dans ce cas, la mise en mémoire tampon du fichier avant la promotion des en-têtes a pour effet que le fichier est demandé une seule fois.

Manipulation de fichier CSV volumineux

Si vous traitez des fichiers CSV volumineux dans l’éditeur Power Query Online, il se peut que vous receviez une erreur interne. Nous vous suggérons d’utiliser d’abord un fichier CSV de plus petite taille, d’appliquer les étapes de l’éditeur et, lorsque vous avez terminé, de modifier le chemin d’accès au fichier CSV plus volumineux. Cette méthode vous permet de travailler plus efficacement, et réduit vos chances de rencontrer un délai d’expiration dans l’éditeur en ligne. Nous ne nous attendons pas à ce que vous rencontriez cette erreur pendant l’actualisation, car nous accordons une durée d’expiration plus longue.

Texte non structuré interprété comme structuré

Dans de rares cas, un document qui a des nombres de virgules similaires entre les paragraphes peut être interprété comme un csv. Si ce problème se produit, modifiez l’étape Source dans l’éditeur Power Query et sélectionnez Texte au lieu de CSV dans la liste déroulante Ouvrir le fichier en tant que.

Colonnes dans Power BI Desktop

Lorsque vous importez un fichier CSV, Power BI Desktop génère une colonnes=x (où x correspond au nombre de colonnes du fichier CSV lors de l’importation initiale) en tant qu’étape dans l’éditeur Power Query. Si vous ajoutez des colonnes par la suite et que la source de données est définie pour s’actualiser, les colonnes au-delà du nombre initial x de colonnes ne sont pas actualisées.

Erreur : Connection fermée par l’hôte

Lors du chargement de fichiers texte/CSV à partir d’une source web, ainsi que de la promotion des en-têtes, il se peut que vous rencontriez les erreurs suivantes : "An existing connection was forcibly closed by the remote host" ou "Received an unexpected EOF or 0 bytes from the transport stream.". Ces erreurs peuvent être dues au fait que l’hôte utilise des mesures de protection et ferme une connexion qui pourrait être temporairement suspendue, par exemple, pendant l’attente d’une autre connexion de source de données pour une opération de jointure ou d’ajout. Pour contourner ces erreurs, essayez d’ajouter un appel Binary.Buffer (recommandé) ou Table.Buffer, qui télécharge le fichier, le charge en mémoire, et ferme immédiatement la connexion. Cela devrait empêcher toute pause pendant le téléchargement et empêcher l’hôte de fermer de force la connexion avant que le contenu soit récupéré.

L’exemple suivant illustre cette solution de contournement. Cette mise en mémoire tampon doit être effectuée avant que la table résultante ne soit transmise à Table.PromoteHeaders.

  • Ressource d’origine :
Csv.Document(Web.Contents("https://.../MyFile.csv"))
  • Avec Binary.Buffer :
Csv.Document(Binary.Buffer(Web.Contents("https://.../MyFile.csv")))
  • Avec Table.Buffer :
Table.Buffer(Csv.Document(Web.Contents("https://.../MyFile.csv")))