Forum Discussion
marcob8986
Apr 15, 2021Copper Contributor
Get a table from each Excel file in folder | speed up the process
Hi, I've setup a query to read the content of a Table inside several Excel files in a folder. My problem is that those files are quite big (3MB+ each) and when the folder contains many files the pr...
marcob8986
Apr 15, 2021Copper Contributor
mathetesThere's no VBa here, just pure M Language in PwerQuery. I do need to be able to pull data from closed excel files, so FILTER function is not right for this.
SergeiBaklan
Apr 15, 2021Diamond Contributor
Perhaps something like this, at least for the part in question
let
Origine = ODPcartellatutti_i_file,
#"Filtrate righe1" = Table.SelectRows(
Origine,
each
Text.Contains([Extension], "xls") or
Text.Contains([Extension], "XLS")
),
#"Rimosse colonne" = Table.RemoveColumns(
#"Filtrate righe1",
{"Date accessed", "Date modified", "Date created", "Folder Path"}
),
#"Aggiunta colonna personalizzata" = Table.AddColumn(
#"Rimosse colonne",
"Tabella_Riepilogo",
Excel.Workbook([Content],null, true)
),
#"Removed Other Columns" = Table.SelectColumns(
#"Aggiunta colonna personalizzata",
{"Tabella_Riepilogo"}
),
#"Removed Errors" = Table.RemoveRowsWithErrors(
#"Removed Other Columns",
{"Tabella_Riepilogo"}
),
#"Tabella Tabella_Riepilogo espansa" = Table.ExpandTableColumn(
#"Removed Errors",
"Tabella_Riepilogo",
{"Name", "Data", "Item", "Kind"},
{"Tabella_Riepilogo.Name", "Tabella_Riepilogo.Data", "Tabella_Riepilogo.Item"}
),
#"Filtrate righe" = Table.SelectRows(
#"Tabella Tabella_Riepilogo espansa",
each ([Kind] = "Table") and ([Name] = "TAB_ODP")
),
#"Removed Other Columns1" = Table.SelectColumns(
#"Filtrate righe",
{"Data"}
),
#"Tabella Tabella_Riepilogo.Data espansa" = Table.ExpandTableColumn(
#"Removed Other Columns1",
"Tabella_Riepilogo.Data",
{"Cliente", "Oggetto", "Materiale", "Data ordine", "Data consegna",
"Autore", "Importo", "Acconto", "Saldo", "TAGLIA-B.", "DISCO-FILO",
"FILO-SAG", "TELAIO", "WATER JET", "INTERMAC", "OMAG/GMM",
"FRESE", "VARIE"},
{
"Nome cliente",
"Oggetto",
"Materiale",
"Data ordine",
"Data consegna",
"Autore",
"Importo netto",
"Acconto netto",
"Dalso netto",
"Tabella_Riepilogo.Data.TAGLIA-B.",
"Tabella_Riepilogo.Data.DISCO-FILO",
"Tabella_Riepilogo.Data.FILO-SAG",
"Tabella_Riepilogo.Data.TELAIO",
"Tabella_Riepilogo.Data.WATER JET",
"Tabella_Riepilogo.Data.INTERMAC",
"Tabella_Riepilogo.Data.OMAG/GMM",
"Tabella_Riepilogo.Data.FRESE",
"Tabella_Riepilogo.Data.VARIE"
}
),
#"Modificato tipo" = Table.TransformColumnTypes(
#"Tabella Tabella_Riepilogo.Data espansa",
{
{"Importo netto", Currency.Type},
{"Dalso netto", Int64.Type},
{"Acconto netto", Int64.Type}
}
),
#"Rimosse colonne2" = Table.RemoveColumns(
#"Modificato tipo",
{"Tabella_Riepilogo.Item", "Content"}
),
#"Rinominate colonne1" = Table.RenameColumns(
#"Rimosse colonne2",
{
{"Name", "Name File"},
{"Dalso netto", "Saldo netto"}
}
)
in
#"Rinominate colonne1"