Sign up ×
Web Applications Stack Exchange is a question and answer site for power users of web applications. It's 100% free, no registration required.

I want to monitor a web page. The best solution I found was Google Spreadsheets
(apart from feed43 which has limitations).

I'm using the importHTML function in Google Spreadsheet which will update the cell value whenever there is any change in data on that web page.

However, I don't know how to save previous value somewhere and if possible append the new updated value to next row of the spreadsheet instead of overwriting the data on that cell.

share|improve this question

migrated from Sep 18 '13 at 19:33

This question came from our site for computer enthusiasts and power users.

@nixda here is the link to my spreadsheet.The value on that spreadsheet gets updated every few minutes, but I want to store the previous values.I tried using IFTTT rss trigger to notify and send value but to my inbox every time value changes, but IFTTT rss triggers only if new content is added and not when content changes.So IFTTT will never trigger :( Any solutions? store the value previous value to another column of spreadsheet? – Suchit Sep 16 '13 at 17:51
What's the website source? Perhaps you can share the sheet, not using the html output? – Jacob Jan Tuinstra Jul 27 '14 at 15:23

2 Answers 2

Yes, it's possible to do that with a simple script such as this one. What it does:

  1. Check whether the current value is equal to the most recent "archived" value.
  2. If not, then archive the current value, inserting a row for this purpose.

After entering the script into the Script Editor, you should create a trigger for it: see Resources > This project's triggers. Two options are: running periodically, or running when the data changes. The second one is more natural for this task, but in case onChange fails to work for you (some people had issues in the past), timed trigger is an option.

function recordChanges() {
  var url = 'the URL of your spreadsheet';   // put URL here
  var ss = SpreadsheetApp.openByUrl(url);
  var sh = ss.getSheetByName('Sheet1');  // or whatever name
  var range = sh.getRange("A1:A2");    // assuming your data appears in A1 cell
  var values = range.getValues();
  if (values[0][0] != values[1][0]) {

This can go on until you hit the limit of 200,000 cells in a spreadsheet... if the spreadsheet has one column, then it can have up to 200,000 rows, so even if another row is added every hour, it will last more than 20 years.

share|improve this answer

If you need to store all the versions, and it is not a requirement to use Google docs for the purpose, you could schedule (using cron or Windows scheduler) a curl operation (you can get it for windows too) for the file, put that into a versioning system, (GIT would do fine, just stage and commit after the curl), and you could keep track of all the previous versions too...

share|improve this answer
thanks but i want google docs – Suchit Sep 16 '13 at 16:53
Well, then this might be a bit Rube Goldbergish approach: you could, after all this, upload it to docs, I'm sure, ther is an API for handling the spreadsheet files... :) – ppeterka Sep 16 '13 at 16:55
i was thinking of a more easy way like spreadsheet formulas or scripts to do the same.. – Suchit Sep 16 '13 at 17:08

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.