Create app based on Google Spreadsheet table with ImportRange

Hi, everyone! I am trying to create a Project Management App, based on a Google Spreadsheet which consolidates all the workplans of the company. This is achieved by having a Consolidated Spreadsheet with the ImportRange function.

Iโ€™ve started to build the app, but many errors are give, because of the R1C1 format.

Iโ€™ve read on the help.appsheet, that ImportRange is a function not compatible. Does that mean it is impossible to use a table with the ImportRange, to generate my appsheet?

I would appreciate your help.

Thank you!

0 9 710
9 REPLIES 9

Steve
Platinum 4
Platinum 4

Yes.

Any suggestions or workarounds? I believe QUERY function will have the same problem, right?

Correct.

I have none, Iโ€™m afraid.

Even I am facing the same trouble. For me, even the table is inaccessible or empty but, Iโ€™ve data in the Sheets.
Pls help if the values in the tables are added via other source, how to retrieve the latest info automatically?

I looked for documentation on this and couldn't find it.  Current documentation doesn't seem to address the use of IMPORTRANGE() as far as I can tell.  

For several years now I have been using IMPORTRANGE in my spreadsheet (and hence in my app).  The row columns are ordinary text but the data is read in via IMPORTRANGE().

Indeed this is actually totally possible! I'm actually completely surprised by the lack of information about this!

Back in 2016, I developed a system for researchers to develop, test, deploy, collect information, analyze, and generate reports for the various studies there wanting to conduct.

Part of this system includes a rather sizable master table, something that contains a boatload of variables that are necessary for the entire process. 

The entire system is actually an ecosphere of apps, consisting of about a dozen separate individually apps each specific for a purpose. One of the difficulties that we faced with this setup, was the size of that main master table in conjunction with the size of the other tables that are collecting data.

  • Everything started growing way too fast

The solution was to create a short version of that Master table, using import range to only bring in a subset of the columns into a reference style table that I could then connect to all the other smaller apps in the ecosystem.

  • That short version of the table is built using import range

Once we discovered that we could use import range in another table and then add that table into your app sheet app to get essentially a copy of it, we started looking for additional functionality and things that we could do. 

Eventually we went so far as to add other columns after the import range section, giving the ability to have basically two copies of the table - each with their own specific individual columns (after the shared columns) specific for what's going on.

  • The key to this setup was making sure that the rows inside the original sheet never change order.
  • There's never a row that is deleted, there's never a row that is moved, we can add rows at the bottom, but that's it - and as long as the row-order maintains the same, everything will be one for one.
  • The data inside the import range is read only, so you can't modify that in the short version of the table; but all of the columns after that are completely editable.

-----------------------------------------------------

I should note this is a very non-standard approach, but if you're already trying to use import range... I just wanted to tell you what was possible. 

  • I should also mention the difficulty that this brought in, caused by the fact that changes made to the original table won't propagate to the short version of the table until you sync the entire app - because the system needs to send the data to the Google sheet, The Google sheet can then propagate that to the import range, and then app sheet picks up the new data from the import range Google sheet and present it in the app.

--------------------------------------------------

okay now that you know what's possible, let me steer you in the direction that I would go.

  • I would NOT try and combine all of these records together using import range
  • Depending on the situation, one thing I might try and do is natively actually connect each of those tables to my app. This would give you the ability to natively modify the actual records, which is probably something that you might want to do down the line.
  • But if I'm honest, I would try and see about actually moving all of this into a singular table. Now that you're building an app sheet app to manage all of this, you can create a relational database that will easily separate out one person's items from another... So having a separate sheet for each person is no longer necessary. And having all of the records inside a singular table just makes everything so much easier.

In my opinion, if you can get all of the data in a singular data table, and then reference connect that to other things, and present that inside your app... This will most likely be an interface that will set you up for success in the future.

Cheers! ๐Ÿ’ช

Thanks a lot! My use of IMPORTRANGE() may be somewhat unique. Of course, the IMPORTRANGE() data, cannot be changed by the user.   But, I have set up a system to remove rows via a slice and to copy rows that the user wants into the app's main table when so desired.  If I can find the time, I may report about this in a TIPS post eventually.  I have found that, for me, TIPS posts are about 50% teaching/sharing and about 50% learning from the feedback commenters give me on what I presume to be teaching.  ๐Ÿ˜‰  

You guys could use google apps scripts to copy and paste the information between your sheets instead of using importrange, if itโ€™s going to be a read only table that is, because if any change is done within your app then it would be lost once the table is updated again.

Ok.Understood.
Thanks for that tip @Rafael_ANEIC-PY

Top Labels in this Space