Créer variable pour le chargement de tables à partir de fichiers pdf

Accueil – Le CFO masqué Forums Power Query Créer variable pour le chargement de tables à partir de fichiers pdf

Mots-clés : 

  • Ce sujet contient 2 réponses, 2 participants et a été mis à jour pour la dernière fois par cedric.castarede, le il y a 2 années et 3 mois.
3 sujets de 1 à 3 (sur un total de 3)
  • Auteur
    Articles
  • #100527
    cedric.castarede
    Participant

    Bonjour
    J’aimerais vous soumettre un problème lié au chargement des données à partir de documents pdf.
    Prenons tout de suite un exemple à partir des fichiers joints:

    – dans le fichier test 1: je souhaite charger la table01 en page 1 (3 lignes 3 colonnes qui commence par AA)
    – dans le fichier test 2, un autre client va m’envoyer la meme table mais cette table va se trouver en page 2 – table02.

    La table contenant la colonne AA / AB / AC sera toujours présente dans tous les pdf, mais pas forcément donc à la même page selon les cas.

    Je ne charge qu’un pdf à la fois, mais j’aimerais limiter les interventions humaines au maximum en indiquant à Power Query qu’il doit charger les tables contenant la colonne en question, quelle que soit sa place dans le document source. Et malheureusement les tables n’ont pas d’en-tête et ne sont pas modifiable avant chargement vu qu’on les reçoit en pdf…

    Est-ce paramétrable avec Query?

    Merci d’avance!

    Attachments:
    You must be logged in to view attached files.
    #100549
    Stéphane Lorin
    Participant

    Bonjour
    pourquoi ne pas combiner toutes les tables en une seule et puis identifier celle qui vous convient et enfin la filtrer ?

    Exemple de code avec un PDF en libre accès.

    let
    Source = Pdf.Tables(Web.Contents(“https://static.data.gouv.fr/resources/demandes-de-valeurs-foncieres/20210809-152624/notice-descriptive-du-fichier-dvf-20210809.pdf”), [Implementation=”1.2″]),
    #”Lignes filtrées” = Table.SelectRows(Source, each [Kind] = “Table”),
    #”Data développé” = Table.ExpandTableColumn(#”Lignes filtrées”, “Data”, {“Column1”, “Column2”}, {“Column1”, “Column2″})
    in
    #”Data développé”

    Stéphane

    #100581
    cedric.castarede
    Participant

    Bonjour Stéphane et merci pour votre retour!

    La solution de combiner toutes les tables ne fonctionne pas sur le long terme car les documents pdf que je charge peuvent contenir plusieurs centaines de tables .
    J’ai néanmoins trouvé une solution en passant en paramètre le numéro de la table à sélectionner dans le document – cela oblige à une intervention humaine entre le chargement et le lancement des requêtes, mais cela est rendu nécessaire par la mauvaise stabilité des données sources.

    Merci encore!

3 sujets de 1 à 3 (sur un total de 3)
  • Vous devez être connecté pour répondre à ce sujet.