PowerQuery zum Parsen von CSV mit fester Breite

PowerQuery zum Parsen von CSV mit fester Breite

Ich habe eine csv.txt mit fester Breite, zB

Martin    Junger    12    
John      Wing      124

Um es mit PowerQuery zu laden, wird diese Syntax verwendet:

let
    Source = Csv.Document(File.Contents("C:\csv.txt"),null,";",null,1251),
    #"Split Column name" = Table.SplitColumn(Source,"Column1",Splitter.SplitTextByPositions({0, 10}, false),{"name", "ColumnOther"}),
    #"Split Column surname" = Table.SplitColumn(#"Split Column name","ColumnOther",Splitter.SplitTextByPositions({0, 10}, false),{"surname", "ColumnOther"}),
    #"Split Column salary" = Table.SplitColumn(#"Split Column surname","ColumnOther",Splitter.SplitTextByPositions({0, 3}, false),{"salary", "ColumnOther"})
in
    #"Split Column salary"

Ich muss also für jede Spalte in CSV einen neuen Befehl erstellen, Table.SplitColumnwas überhaupt nicht praktisch ist. Gibt es eine Syntax, um dies in einem Befehl zu tun?

Danke

Antwort1

Obwohl es in der Dokumentation nicht erwähnt wird, akzeptiert Csv.Document eine Liste als „optionales Trennzeichen“-Argument, das die (nullbasierte) Startposition jeder Spalte angibt. Sie können dies unten in der von PQ generierten Abfrage sehen, als ich es auf diese Datei gerichtet habe (z. B. mit Excel 2016: Datenband / Neue Abfrage / Aus Datei / Aus Text). Das „optionale Trennzeichen“-Argument lautet:{0,10,20}

let Source = Csv.Document(File.Contents("C:\csv.txt"),null,{0,10,20},null,1252), #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}, {"Column2", type text}, {"Column3", Int64.Type}}) in #"Changed Type"

Antwort2

Sie müssen das PowerQuery-Plugin für Excel nicht verwenden, um eine feste Breite zu importieren – es ist integriert.

Schritte:

  1. Registerkarte „Daten“ aus Text (Abschnitt „Externe Daten abrufen“)
  2. Wählen Sie Ihre CSV-Datei
  3. Achten Sie darauf, dass der Textimport-Assistent geöffnet wird
  4. Wählen Sie unter: Ursprünglicher Datentyp „Feste Breite“
  5. Fahren Sie mit den Schritten des Assistenten fort.

Bildbeschreibung hier eingeben

verwandte Informationen