Dynamic charts - keep number of active rows


I’ve created a dashboard with many charts based on a spreadsheet that I regularly update with Sheetgo.

The problem is that these charts don’t include the new rows in the input spreadsheet every time I update it with Sheetgo. This is due to the fact that your script overwrites the number of active rows in a sheet based on the input file. Isn’t there a way to prevent that?

Some screens for reference.

I’d like the spreadsheet not to be cut at 16 rows but to go all the way to 1000 rows. If I add 1000 rows below, the next time I update the spreadsheet with Sheetgo, it’ll go back to 16 rows.

This prevents me from setting the charts to be dynamic by including 1000 rows in the input range.


Have you taken a look at this article:

The easy way would probably be to create a chart from a dynamically populated sheet. (using an array formula or a query) This would also avoid empty values getting plotted on your chart.


So basically:

  1. Create a mirror sheet of the Sheetgo one
  2. Hide the Sheetgo sheet



Dear @mdamato,

This is a great request! Thanks for highlighting this. :relieved:

I just had this with another user as well.

The old Sheetgo behaviour was as follows:

If your source file had empty/blank rows, Sheetgo would transfer those, too.

Now recently, Sheetgo transfers only rows that contain data and removes and blank/empty rows.

Can you confirm that this new behaviour affects you and that you need a connection setting by which to tell Sheetgo not to remove empty/blank rows?

Thanks! :blush::+1:


the blank rows are not in the source file but rather in the spreadsheet I’m refreshing in Google Sheet.

  1. First import > no blank rows
  2. I add the blank rows on the bottom
  3. Refresh > deletes blank rows

I just wanted to retain them (in a similar way the ‘append feature’ works but I don’t want to append the new lines.


@mdamato got you! I am taking a note for one of our next releases.

Thanks! :+1::slightly_smiling_face:


I’m having a related issue:

I’ve solved the issue creating a mirror sheet which basically has all cells as ‘=same_cell_of_the_other_sheet’.
The problem is that when I refresh the connection, it messes up the last filled row of the mirrored sheet:

  • let’s say it was the 29th row of my mirror with all cells like =SG_sheet!A29, =SG_sheet!B29, etc.
  • when I refresh the connection, the SG_sheet has a new row
  • the 30th row in the mirror sheet, instead of staying like =SG_sheet!A30, =SG_sheet!B30, goes to 31
  • so I have to copy-paste down the formulas from the 29th row again

I hope it’s clear


@mdamato more or less clear, yes.

Do you have an example spreadsheet that you can share for us to jointly think about a proper workaround?


@mdamato et al,

Here is an example how to retain empty rows on the destination.

The workaround is to add another empty sheet to the consolidation. :slight_smile: