Get Stock Data from Yahoo Finance in Google Spreadsheets
Google Finance is no longer integrated with Google Apps Script but you can still use Yahoo Finance with the URLFetch service to bring stock data from the Yahoo website into your Google Spreadsheet. Yahoo Finance data is available in CSV format that can be parsed with parseCSV method of Google Scripts.
function getYahooFinanceData(stockSymbol, startDate, endDate) {
stockSymbol = stockSymbol || 'GOOG';
var start = new Date(startDate),
end = new Date(endDate),
data = [];
var url =
'http://real-chart.finance.yahoo.com/table.csv?s=' +
stockSymbol +
'&a=' +
start.getMonth() +
'&b=' +
start.getDate() +
'&c=' +
start.getFullYear() +
'&d=' +
end.getMonth() +
'&e=' +
end.getDate() +
'&f=' +
end.getFullYear() +
'&g=d&ignore=.csv';
var response = UrlFetchApp.fetch(url, { muteHttpExceptions: true });
if (response.getResponseCode()) {
var textFile = response.getContentText();
// If the URL is incorrect, Yahoo will return a 404 html page and not a CSV
if (textFile.indexOf('') == -1) {
var csv = Utilities.parseCsv(textFile);
for (var i = csv.length - 1; i > 1; i--) {
data.push(csv[i]);
}
}
}
return data;
}
Amit Agarwal
Google Developer Expert, Google Cloud Champion
Amit Agarwal is a Google Developer Expert in Google Workspace and Google Apps Script. He holds an engineering degree in Computer Science (I.I.T.) and is the first professional blogger in India.
Amit has developed several popular Google add-ons including Mail Merge for Gmail and Document Studio. Read more on Lifehacker and YourStory