Skip to main content
Announcements
Do More with Qlik - Qlik Cloud Analytics Recap and Getting Started, June 19: REGISTER
cancel
Showing results for 
Search instead for 
Did you mean: 
James_Kirkpatrick
Contributor II
Contributor II

Load Script for REST Connector to Smartsheet

Hello Qlik community.  I wanted to share this in the event someone is looking for a comprehensive load script that could be used for the Smartsheet REST connection.

These are the development issues I came across and built a solution around:

  • How do I remove the limit of the first 100 reports/sheets I'm connected to?
  • How do I connect to more than 10k records that are limited once a table is found?
  • How can I get the script to work on both a Smartsheet 'Sheet' and a Smartsheet 'Report'?
  • Is there a way I can pull multiple Smartsheet 'Reports', 'Sheets', or 'Reports and Sheets' all at once?
  • What if multiple Smartsheet tables are named the same?

I found some guidance in the forums and then read up on Smartsheet's API documentation to get an understanding of how they structured their API.  After working through this, I now have a solution worthy of sharing with everyone.  Really hope this helps someone else - Feel free to let me know what you think.  And of course, give it a like to show some appreciation 🙂

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

I will walk through the solution below and you can download the txt file to paste into your load editor.

The developer only needs to update a few things in the first few rows of code.

  • Update the 'Bearer' code
  • Update your connection name
  • Define the 'Sheet ID'' or 'Report ID' and state if they are a 'Sheet' or 'Report'

Note:  Even though we are using the Shartsheet ID for best practice, the Name is what you will see for each table.

James_Kirkpatrick_0-1673043881109.png

From this point forward, everything is set and the only changes to make are optional.
Variables are assigned so that Sheets or Reports can be pulled.

James_Kirkpatrick_1-1673043960222.png

Connection is established and the "include all" query is passed to get more that the first 100 reports/sheets.

There is an optional stop point you can do here where the two [ACTION] comments are.  These are so you can run the script at this point and get the list of all Sheets or Reports - This is in the event you wanted to view a list of all tables you are connected to without having to open Smartsheet to to see.

James_Kirkpatrick_2-1673044171874.png

Once we have our list of Reports and Sheets we are going to pull in, a loop will be set to walk through each one and determine how many records there are.  This was a necessary step if you wanted to pull in an unlimited number of records, as the row count limiter prevented us from bringing in more than 10k records at once. The "Include All" query only works on the table name table - not at the row level.  Also, asking for the row count always returned the row count to the current page you are on (page one by default). 

To get around this, I defined each page to be 1 record long with a max page of 9999999 (set whatever limit you want here).  Then I could call and ask for how many pages in total there were - Which in essence tells me how many records there are.

It is possible you have 2 or more Smartsheet reports with the same name.  There is also a section of code that checks to see if a table name has already been used.  If it has, then it renames one of the tables to add the row number of the duplicate from the list of reports you want to bring in. This way it is easy to find and correct if it was a mistake.

James_Kirkpatrick_4-1673297729067.png

After knowing how many records there are, I set variables up to define limits in the query, by calculating how many pages there are, and created a stopping point for a loop to pull in the exact number of pages available for the Report/Sheet.

Define variables:

James_Kirkpatrick_5-1673044643381.png

Loop through each page and pull it in:

James_Kirkpatrick_6-1673044705648.png

The data that comes in will be in an indexed view of the data table. This script will do an index matching process to bring it back to a standard table view.  I also left an optional point for you to decide if you want to exclude fields that are fully null and save space, or include them if you need them for later when as there may not be data there yet.

James_Kirkpatrick_7-1673044998006.png

A space is left here if you want to add the table name to each of the fields.
For example: Table.Field1, Table.Field2

James_Kirkpatrick_3-1673297447775.png

After we have all of the pages for the Report/Sheet, we stitch them back together so they become one table again.

James_Kirkpatrick_10-1673045194049.png

Then we close the loop and drop the table after we iterate through the full list of Reports/Sheets we set to include.

James_Kirkpatrick_1-1673297261060.png

 

 

At this point the API load is complete and resident loads can be called for any ETL needed.

Labels (3)
1 Solution

Accepted Solutions
James_Kirkpatrick
Contributor II
Contributor II
Author

I cant see a failure in that summary run - but it does look like Qlik is choking on the synthetic joins.  This tells me you have loaded multiple sheets from smartsheet - but you havent given Qlik instructions on what to do with the sheets - so its trying to make a bunch of relationships between tables.

I would recommend going slower and pick out two tables.  What do you want to do with them?  Concatenate? Left join? Inner join?  Then add more sheets and build around that pattern.

View solution in original post

6 Replies
GADJ
Contributor
Contributor

I am trying to run this script. It connects and starts to load the data from my smartsheets but fails and I get this error.

 

The following error occurred:
 
 
The error occurred here:
For vPageLoad = 1 to vPageCount step 1
James_Kirkpatrick
Contributor II
Contributor II
Author

This happens for one of the following reasons:

1 - You don't have access to that sheet/report in smartsheet.  Open smartsheet and confirm you can access the sheet/report.  Right click and go to properties to ensure you are copying the correct sheet/report ID.

2 - You labeled it as a Sheet when it is a Report.  Or you labeled it as a Report when it is a Sheet.  Also note that this is case sensitive and spelling matters.  Must be written exactly as [Sheet] or [Report] without the brackets in the "API Report List" table.

GADJ
Contributor
Contributor

Here is the script running along with where it is failing. I just updated the Sheet IDs and now I have this.

 

Started loading data
 
RestConnectorMasterTable << RestConnectorMasterTable Lines fetched: 32 Sheets << RestConnectorMasterTable Lines fetched: 1
RestConnectorMasterTable << RestConnectorMasterTable Lines fetched: 8,188 RawData << RestConnectorMasterTable Lines fetched: 45 RestConnectorMasterTable Lines fetched: 7,965 RestConnectorMasterTable Lines fetched: 177 masterfields << RawData Lines fetched: 7,965 Stage Gate Date Tracker << RawData Lines fetched: 7,965 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData
Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177
RestConnectorMasterTable << RestConnectorMasterTable Lines fetched: 70 RestConnectorMasterTable << RestConnectorMasterTable Lines fetched: 4,480 RawData << RestConnectorMasterTable Lines fetched: 34
RawData Lines fetched: 127 RawData Lines fetched: 127 RawData Lines fetched: 127 RawData Lines fetched: 127 RawData Lines fetched: 127 RawData Lines fetched: 127 RawData Lines fetched: 127 RawData Lines fetched: 127 RawData Lines fetched: 127 RawData Lines fetched: 127 RawData Lines fetched: 127 RawData Lines fetched: 127 RawData Lines fetched: 127 RawData Lines fetched: 127 RawData Lines fetched: 127 Consolidated_Stage Gate 1: Front Door1 << Stage Gate 1: Front Door Lines fetched: 127 Stage Gate 1: Front Door << Consolidated_Stage Gate 1: Front Door1 Lines fetched: 127 RestConnectorMasterTable << RestConnectorMasterTable Lines fetched: 32 Sheets << RestConnectorMasterTable Lines fetched: 1
RestConnectorMasterTable << RestConnectorMasterTable Lines fetched: 819 RawData << RestConnectorMasterTable Lines fetched: 38 RestConnectorMasterTable Lines fetched: 760 RestConnectorMasterTable Lines fetched: 20 masterfields << RawData Lines fetched: 760 Stage Gate 2: Scoping << RawData Lines fetched: 760 RawData Lines fetched: 20 RawData Lines fetched: 20 RawData Lines fetched: 20 RawData Lines fetched: 20 RawData Lines fetched: 20 RawData Lines fetched: 20 RawData Lines fetched: 20 RawData Lines fetched: 20 RawData Lines fetched: 20 RawData Lines fetched: 20 RawData Lines fetched: 20 RawData Lines fetched: 20 RawData Lines fetched: 20 RawData Lines fetched: 20 RawData Lines fetched: 20 RawData Lines fetched: 20 RawData Lines fetched: 20 RawData Lines fetched: 20 RawData Lines fetched: 20 RawData Lines fetched: 20 RawData Lines fetched: 20 RawData Lines fetched: 20 RawData Lines fetched: 20 RawData Lines fetched: 20 RawData Lines fetched: 20 RawData Lines fetched: 20 RawData Lines fetched: 20 RawData Lines fetched: 20 RawData Lines fetched: 20 RawData Lines fetched: 20 RawData Lines fetched: 20 RawData Lines fetched: 20 RawData Lines fetched: 20 RawData Lines fetched: 20 RawData Lines fetched: 20 RawData Lines fetched: 20 RawData Lines fetched: 20 RawData Lines fetched: 20 Consolidated_Stage Gate 2: Scoping1 << Stage Gate 2: Scoping Lines fetched: 20 Stage Gate 2: Scoping << Consolidated_Stage Gate 2: Scoping1 Lines fetched: 20 RestConnectorMasterTable << RestConnectorMasterTable Lines fetched: 32 Sheets << RestConnectorMasterTable Lines fetched: 1
RestConnectorMasterTable << RestConnectorMasterTable Lines fetched: 1,302 RawData << RestConnectorMasterTable Lines fetched: 41 RestConnectorMasterTable Lines fetched: 1,230 RestConnectorMasterTable Lines fetched: 30 masterfields << RawData Lines fetched: 1,230 Stage Gate 3: Project Eval << RawData Lines fetched: 1,230 RawData Lines fetched: 30 RawData Lines fetched: 30 RawData Lines fetched: 30 RawData Lines fetched: 30 RawData Lines fetched: 30 RawData Lines fetched: 30 RawData Lines fetched: 30 RawData Lines fetched: 30 RawData Lines fetched: 30 RawData Lines fetched: 30 RawData Lines fetched: 30 RawData Lines fetched: 30 RawData Lines fetched: 30 RawData Lines fetched: 30 RawData Lines fetched: 30 RawData Lines fetched: 30 RawData Lines fetched: 30 RawData Lines fetched: 30 RawData Lines fetched: 30 RawData Lines fetched: 30 RawData Lines fetched: 30 RawData Lines fetched: 30 RawData Lines fetched: 30 RawData Lines fetched: 30 RawData Lines fetched: 30 RawData Lines fetched: 30 RawData Lines fetched: 30 RawData Lines fetched: 30 RawData Lines fetched: 30 RawData Lines fetched: 30 RawData Lines fetched: 30 RawData Lines fetched: 30 RawData Lines fetched: 30 RawData Lines fetched: 30 RawData Lines fetched: 30 RawData Lines fetched: 30 RawData Lines fetched: 30 RawData Lines fetched: 30 RawData Lines fetched: 30 RawData Lines fetched: 30 RawData Lines fetched: 30 Consolidated_Stage Gate 3: Project Eval1 << Stage Gate 3: Project Eval Lines fetched: 30 Stage Gate 3: Project Eval << Consolidated_Stage Gate 3: Project Eval1 Lines fetched: 30 RestConnectorMasterTable << RestConnectorMasterTable Lines fetched: 32 Sheets << RestConnectorMasterTable Lines fetched: 1
RestConnectorMasterTable << RestConnectorMasterTable Lines fetched: 144 RawData << RestConnectorMasterTable Lines fetched: 47 RestConnectorMasterTable Lines fetched: 94 RestConnectorMasterTable Lines fetched: 2 masterfields << RawData Lines fetched: 94 Stage Gate 4: Funding << RawData Lines fetched: 94 RawData Lines fetched: 2 RawData Lines fetched: 2 RawData Lines fetched: 2 RawData Lines fetched: 2 RawData Lines fetched: 2 RawData Lines fetched: 2 RawData Lines fetched: 2 RawData Lines fetched: 2 RawData Lines fetched: 2 RawData Lines fetched: 2 RawData Lines fetched: 2 RawData Lines fetched: 2 RawData Lines fetched: 2 RawData Lines fetched: 2 RawData Lines fetched: 2 RawData
Lines fetched: 2 RawData Lines fetched: 2 RawData Lines fetched: 2 RawData Lines fetched: 2 Consolidated_Stage Gate 4: Funding1 << Stage Gate 4: Funding Lines fetched: 2 Stage Gate 4: Funding << Consolidated_Stage Gate 4: Funding1 Lines fetched: 2 RestConnectorMasterTable << RestConnectorMasterTable Lines fetched: 32 Sheets << RestConnectorMasterTable Lines fetched: 1 RestConnectorMasterTable << RestConnectorMasterTable Lines fetched: 82
Lines fetched: 3 RawData Lines fetched: 3 RawData Lines fetched: 3 RawData Lines fetched: 3 RawData Lines fetched: 3 RawData Lines fetched: 3 RawData Lines fetched: 3 RawData Lines fetched: 3 RawData Lines fetched: 3 RawData Lines fetched: 3 RawData Lines fetched: 3 RawData Lines fetched: 3 RawData Lines fetched: 3 RawData Lines fetched: 3 RawData Lines fetched: 3 RawData Lines fetched: 3 RawData Lines fetched: 3 Consolidated_Stage Gate 5: Workstream Milestones1 << Stage Gate 5: Workstream Milestones Lines fetched: 3 Stage Gate 5: Workstream Milestones << Consolidated_Stage Gate 5: Workstream Milestones1 Lines fetched: 3 RestConnectorMasterTable << RestConnectorMasterTable Lines fetched: 32 Sheets << RestConnectorMasterTable Lines fetched: 1 RestConnectorMasterTable << RestConnectorMasterTable Lines fetched: 70
RestConnectorMasterTable Lines fetched: 177 masterfields << RawData Lines fetched: 6,018 2024 Front Door All Entries << RawData Lines fetched: 6,018 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 RawData Lines fetched: 177 Consolidated_2024 Front Door All Entries1 << 2024 Front Door All Entries Lines fetched: 177 2024 Front Door All Entries << Consolidated_2024 Front Door All Entries1 Lines fetched: 177
$Syn 1 = Row ID+Submitter Email+Problem/Issue Submission+Existing Project - including RPM now+Referred from Funding+Submission Description+File Attachment+Sent for Weekly Scoping Assignment+Emerge Funding Source+Modified+Workstream Alignment+Scoping Due by+Name of Team Member completing Scoping+Scoping Completed?+Estimated Sizing+Redirect as Defect+Impacted Channel+Rapid Response Required+Analysis needed from Team Rotondo?+Moving Forward?+New Determined Project Title $Syn 2 = Row ID+Submitter Name+Submitter Email+Problem/Issue Submission+Existing Project - including RPM now+Referred from Funding+Submission Description+File Attachment+Sent for Weekly Scoping Assignment+Emerge Funding Source+Modified+Workstream Alignment+Scoping Due by+Name of Team Member completing Scoping+Scoping Completed?+Estimated Sizing+Redirect as Defect+Impacted Channel+Rapid Response Required+Analysis needed from Team Rotondo?+Moving Forward?+New Determined Project Title $Syn 3 = Row ID+Submitter Name+Submitter Email+Problem/Issue Submission+Existing Project - including RPM now+Referred from Funding+Submission Description+File Attachment+Sent for Weekly Scoping Assignment+Emerge Funding Source+Modified+Workstream Alignment+Scoping Due by+Name of Team Member completing Scoping+Scoping Completed?+Estimated Sizing+Redirect as Defect+Impacted Channel+Rapid Response Required+Analysis needed from Team Rotondo?+Moving Forward?+New Determined Project Title+Is Rapid Response Required? $Syn 4 = Row ID+Submitter Name+Submitter Email+Problem/Issue Submission+Existing Project - including RPM now+Referred from Funding+Submission Description+File Attachment+Sent for Weekly Scoping Assignment+Emerge Funding Source+Modified+Workstream Alignment+Scoping Due by+Name of Team Member completing Scoping+Scoping Completed?+Estimated Sizing+Redirect as Defect+Impacted Channel+Rapid Response Required+Analysis needed from Team Rotondo?+Moving Forward?+New Determined Project Title+Is Rapid Response Required?+Enhance an Experience+Operational Efficiency+Ability to Deliver+Timescale+Financial Benefit+Score+Funding Stream+Urgency+Funding Status $Syn 5 = Row ID+Created+Submitter Email+Problem/Issue Submission+Existing Project - including RPM now+Referred from Funding+Submission Description+File Attachment+Sent for Weekly Scoping Assignment+Defect Redirect+Emerge Funding Source+Modified+Workstream Alignment+Please select your Market+Submitter Contact Info+Stage Gate Move Date+Stage Gate 1 to Stage Gate 2+Scoping Due by+Name of Team Member completing Scoping+Scoping Completed?+Estimated Sizing+Redirect as Defect+Impact/Reward+Urgency/Importance+Time to Deliver+Impacted Channel+Priority Alignment+Rapid Response Required+Analysis needed from Team Rotondo?+Moving Forward?+New Determined Project Title $Syn 6 = Row ID+Created+Submitter Email+Problem/Issue Submission+Existing Project - including RPM now+Referred from Funding+Submission Description+File Attachment+Sent for Weekly Scoping Assignment+Defect Redirect+Emerge Funding Source+Modified+Workstream Alignment+Please select your Market+Submitter Contact Info+Stage Gate Move Date+Stage Gate 1 to Stage Gate 2+Scoping Due by+Name of Team Member completing Scoping+Scoping Completed?+Estimated Sizing+Redirect as Defect+Impact/Reward+Urgency/Importance+Time to Deliver+Impacted Channel+Priority Alignment+Rapid Response Required+Analysis needed from Team Rotondo?+Moving Forward?+New Determined Project Title+Outside Funding - Scoping as Stakeholder+Prod. Support Identified Gap/Enhancement+Prod. Support Gap/Enhancement Impact+Prod Support Defect/Ticket/User Story $Syn 7 = Row ID+Created+Submitter Email+Problem/Issue Submission+Existing Project - including RPM now+Referred from Funding+Submission Description+File Attachment+Sent for Weekly Scoping Assignment+Defect Redirect+Emerge Funding Source+Modified+Workstream Alignment+Please select your Market+Submitter Contact Info+Stage Gate Move Date+Stage Gate 1 to Stage Gate 2+Scoping Due by+Name of Team Member completing Scoping+Scoping Completed?+Estimated Sizing+Redirect as Defect+Impact/Reward+Urgency/Importance+Time to Deliver+Impacted Channel+Priority Alignment+Rapid Response Required+Analysis needed from Team Rotondo?+Moving Forward?+New Determined Project Title+TEST+submission $Syn 8 = Row ID+Created+Submitter Name+Submitter Email+Problem/Issue Submission+Existing Project - including RPM now+Referred from Funding+Submission Description+File Attachment+Sent for Weekly Scoping Assignment+Defect Redirect+Emerge Funding Source+Modified+Workstream Alignment+Please select your Market+Submitter Contact Info+Stage Gate Move Date+Stage Gate 1 to Stage Gate 2+Scoping Due by+Name of Team Member completing Scoping+Scoping Completed?+Estimated Sizing+Redirect as Defect+Impact/Reward+Urgency/Importance+Time to Deliver+Impacted Channel+Priority Alignment+Rapid Response Required+Analysis needed from Team Rotondo?+Moving Forward?+New Determined Project Title $Syn 9 = Row ID+Created+Submitter Name+Submitter Email+Problem/Issue Submission+Existing Project - including RPM now+Referred from Funding+Submission Description+File Attachment+Sent for Weekly Scoping Assignment+Defect Redirect+Emerge Funding Source+Modified+Workstream Alignment+Please select your Market+Submitter Contact Info+Stage Gate Move Date+Stage Gate 1 to Stage Gate 2+Scoping Due by+Name of Team Member completing Scoping+Scoping Completed?+Estimated Sizing+Redirect as Defect+Impact/Reward+Urgency/Importance+Time to Deliver+Impacted Channel+Priority Alignment+Rapid Response Required+Analysis needed from Team Rotondo?+Moving Forward?+New Determined Project Title+Is Rapid Response Required?+Date of Eval Call+Measurable Impact+Estimated ROI+Stage Gate 2 to Stage Gate 3 $Syn 10 = Row ID+Created+Submitter Name+Submitter Email+Problem/Issue Submission+Existing Project - including RPM now+Referred from Funding+Submission Description+File Attachment+Sent for Weekly Scoping Assignment+Defect Redirect+Emerge Funding Source+Modified+Workstream Alignment+Please select your Market+Submitter Contact Info+Stage Gate Move Date+Stage Gate 1 to Stage Gate 2+Scoping Due by+Name of Team Member completing Scoping+Scoping Completed?+Estimated Sizing+Redirect as Defect+Impact/Reward+Urgency/Importance+Time to Deliver+Impacted Channel+Priority Alignment+Rapid Response Required+Analysis needed from Team Rotondo?+Moving Forward?+New Determined Project Title+TEST+submission $Syn 11 = $Syn 1+$Syn 5 $Syn 12 = $Syn 1+$Syn 5+$Syn 7 $Syn 13 = $Syn 1+$Syn 5+$Syn 6 $Syn 14 = $Syn 1+$Syn 5+$Syn 6+$Syn 7 $Syn 15 = $Syn 1+$Syn 2 $Syn 16 = $Syn 1+$Syn 2+$Syn 5+$Syn 8 $Syn 17 = $Syn 1+$Syn 2+$Syn 5+$Syn 7+$Syn 8+$Syn 10
$Syn 23 = $Syn 15+$Syn 18 $Syn 24 = $Syn 15+$Syn 18+$Syn 21 $Syn 25 = $Syn 11+$Syn 15+$Syn 16 $Syn 26 = $Syn 11+$Syn 15+$Syn 16+$Syn 18+$Syn 19 $Syn 27 = $Syn 11+$Syn 15+$Syn 16+$Syn 18+$Syn 19+$Syn 21+$Syn 22 $Syn 28 = $Syn 11+$Syn 13 $Syn 29 = $Syn 11+$Syn 13+$Syn 15+$Syn 16+$Syn 18+$Syn 19+$Syn 20 $Syn 30 = $Syn 11+$Syn 12 $Syn 31 = $Syn 11+$Syn 12+$Syn 15+$Syn 16+$Syn 17 $Syn 32 = $Syn 11+$Syn 12+$Syn 13+$Syn 14
$Syn 33 = $Syn 28+$Syn 30+$Syn 32 $Syn 34 = $Syn 25+$Syn 30+$Syn 31 $Syn 35 = $Syn 23+$Syn 25+$Syn 26
$Syn 38 = $Syn 23+$Syn 24+$Syn 25+$Syn 26+$Syn 27

 

GADJ
Contributor
Contributor

Failure attached

James_Kirkpatrick
Contributor II
Contributor II
Author

I cant see a failure in that summary run - but it does look like Qlik is choking on the synthetic joins.  This tells me you have loaded multiple sheets from smartsheet - but you havent given Qlik instructions on what to do with the sheets - so its trying to make a bunch of relationships between tables.

I would recommend going slower and pick out two tables.  What do you want to do with them?  Concatenate? Left join? Inner join?  Then add more sheets and build around that pattern.

GADJ
Contributor
Contributor

That was the issue. it loaded one sheet with no issues.