One good thing to know is that you can use an asterisk * within a file name. Qlik will load all the files that fit the criteria.
Say you have a directory named QVD, which has all of your QVDs prepped and ready for your data model. You can simply do the following to load them all.
Load * From [lib://QVD/*.qvd];
If you have extracts with a date or notation to them, you can load them in a similar fashion.
Fact: Load * From [lib://Data/Sales_*.csv](txt, utf8, embedded labels, delimiter is ',');
Using these files as an example:
All the files would be loaded except for Sales201904.csv, because it doesn’t match the Sales_*.csv criteria, because it is missing the underscore.
One thing to note is you are relying on Qlik’s brain on what to do with the tables. You aren’t being explicit with what you want. So tables with the same fields will be auto-concatenated, while others with a different structure will be created as different tables.
If you want to be explicit, which you know I do, you can utilize a loop.
Sales: Load Null() as Tmp AutoGenerate (0); For each File in FileList('lib://Data/Sales_*.csv') Concatenate(Sales) Load * From [$(File)](txt, utf8, embedded labels, delimiter is ','); Next File Drop Field Tmp;