Last active
February 17, 2020 16:26
-
-
Save SchreiberLars/0ea46ae42f80181ba6f6070775a93761 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let func = (PfadZumOrdner as text, Spaltentrennzeichen as text, EncodingCode as number ) as table => | |
let | |
//Hier den Funktions-Corpus eintragen | |
//=========================================Beispielparameter fürs Debugging==================================== | |
/*PfadZumOrdner = "H:\SSBI-Blog\Website\Business Topics\_csvs mit verschiedenen Headern einlesen\Datenquelle", | |
Spaltentrennzeichen = ";", | |
EncodingCode = 1252 | |
*/ | |
//=========================================Beispielparameter fürs Debugging==================================== */ | |
Quelle = Folder.Files(PfadZumOrdner), | |
//Auf csv-Dateien einschränken | |
NurCSVs = Table.SelectRows(Quelle, each Text.Lower([Extension]) = ".csv"), | |
//Dieser Schritt ermittelt in einer neuen berechneten Spalte die Überschriften individuell je Datei und nicht anhand einer Beispieldatei | |
UeberschriftenJeDatei = Table.AddColumn(NurCSVs, "UeberschriftenJeDatei", each try Lines.FromBinary([Content],QuoteStyle.None){0} otherwise null, type text), | |
//In einer neuen berechneten Spalte alle Tabellen mit ihren individuellen Überschriften einzeln ermitteln und anschließend in einer Liste wiedergeben | |
GetAllTables = | |
Table.AddColumn( | |
UeberschriftenJeDatei, | |
"AlleTabellen", | |
each Table.PromoteHeaders( | |
Csv.Document( | |
[Content], | |
[Delimiter=Spaltentrennzeichen, | |
Columns=List.Count( | |
Text.Split( | |
[UeberschriftenJeDatei], | |
Spaltentrennzeichen | |
) | |
), Encoding=EncodingCode, QuoteStyle=QuoteStyle.None] | |
), | |
[PromoteAllScalars=true] | |
) | |
)[AlleTabellen], | |
//Das Resultat besteht aus den kombinierten Tabellen der jeweiligen CSV-Dateien | |
Output = Table.Combine( GetAllTables ) | |
in | |
Output, | |
documentation = | |
[ | |
Documentation.Name = " fnImportCSVsWithDifferentStructure ", | |
Documentation.Description = "Diese Funktion importiert CSV-Dateien aus einem definierten Ordner, unter Berücksichtigung verschiedener Datenstrukturen.", | |
Documentation.Parameters = " ", | |
Documentation.Category = " ", | |
Documentation.Author = " Lars Schreiber: www.ssbi-blog.de ", | |
Documentation.Examples = | |
{ | |
[ | |
Description = " " , | |
Code = " ", | |
Result = " " | |
] | |
} | |
] | |
in | |
Value.ReplaceType(func, Value.ReplaceMetadata(Value.Type(func), documentation)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment