
At integrere aktiepriser i Google Sheets er en fantastisk måde at automatisere finansiel dataindsamling på, og Yahoo Finance API er et populært valg, da det tilbyder let adgang til aktiekurser og økonomiske data. I denne blog vil jeg vise dig, hvordan du kan importere aktiepriser fra Yahoo Finance API direkte til Google Sheets ved at bruge Google Apps Script.
Hvad er Google Apps Script?
Google Apps Script er et scripting-sprog baseret på JavaScript, som kan bruges til at automatisere og tilpasse Google Workspace-applikationer som Google Sheets. Du kan oprette tilpassede funktioner, interagere med eksterne API’er og automatisere dataarbejde. I dette tilfælde vil vi bruge Apps Script til at hente aktiepriser fra Yahoo Finance API og vise dem i Google Sheets.
Hvad er Google Apps Script?
Først skal vi oprette et Google Apps Script-projekt i Google Sheets.
Trin 1: Opret et nyt Google Sheet
Start med at åbne Google Sheets og opret et nyt regneark. Dette vil være din arbejdsflade til at vise aktiepriserne.
Trin 2: Åbn Apps Script editoren
- I Google Sheets, klik på “Udvidelser” i menuen.
- Vælg “Apps Script”. Dette åbner Apps Script editoren.
Trin 2: Åbn Apps Script editoren
I editoren skal du slette den eksisterende kode og indsætte følgende funktion. Dette er den funktion, som vi senere vil kalde fra regnearket for at hente aktiepriser.
function YFinance(quote, datatype) {
try {
const baseUrl = 'https://query2.finance.yahoo.com/v8/finance/chart/';
// Konstruer URL'en for aktiekursen baseret på ticker
let url = baseUrl + quote;
// Fetch API data fra Yahoo Finance
const response = UrlFetchApp.fetch(url);
const responseCode = response.getResponseCode();
// Tjek om der er et succesfuldt svar fra serveren
if (responseCode != 200) {
return "No data found for " + quote;
}
// Parse JSON svar
const json = JSON.parse(response.getContentText());
const data = json['chart']['result'][0]['meta'];
// Returnér forskellige data baseret på datatype parameteren
if (datatype === 'price') {
const marketPrice = data['regularMarketPrice'];
console.log(marketPrice);
return marketPrice;
} else if (datatype === 'currency') {
const currency = data['currency'];
console.log(currency);
return currency;
}
return "No datatype provided";
} catch (error) {
console.error('Error fetching data:', error);
return `Error: ${error.message}`;
}
}
Denne funktion YFinance gør følgende:
- quote: Dette er aktiens ticker-symbol, f.eks. “AAPL” for Apple eller “GOOGL” for Alphabet. datatype: Dette argument kan enten være ‘price’ for aktiekursen eller ‘currency’ for den valuta, aktien handles i.
- datatype: Dette argument kan enten være ‘price’ for aktiekursen eller ‘currency’ for den valuta, aktien handles i.
Trin 4: Gem og luk scriptet
Når du har indsat koden, skal du gemme scriptet ved at klikke på disketteikonet eller ved at trykke Ctrl + S. Du kan give dit projekt et passende navn, f.eks. “Aktieimporter”.
Brug af funktionen i Google Sheets
Nu hvor vi har skrevet funktionen, kan vi bruge den direkte i Google Sheets, ligesom vi bruger enhver anden Google Sheets-funktion.
Trin 5: Kald funktionen i Sheets
Gå tilbage til dit Google Sheet.
I en celle skal du skrive en formel for at hente aktiekursen. Her er et eksempel:
=YFinance("AAPL", "price")
Hvis du vil hente valutaen, kan du bruge:
=YFinance("AAPL", "currency")
API-begrænsninger og hastighedsgrænser
Yahoo Finance API’et, som vi bruger her, er offentligt tilgængeligt, men det er vigtigt at være opmærksom på eventuelle begrænsninger i antallet af anmodninger, du kan sende per time. Hvis du kører mange opdateringer i et regneark, kan du støde på hastighedsgrænser.
Til slut
Med Google Apps Script og Yahoo Finance API kan du nemt integrere finansielle data direkte i dine Google Sheets, hvilket sparer dig for tid og gør det lettere at analysere aktiemarkedsdata. Denne løsning er kraftfuld, da du kan skræddersy funktionerne, hente data for flere aktier og automatisere opdateringer for at holde dine data aktuelle.
Jeg håber, du finder dette blogindlæg nyttigt, og at du nu kan importere aktiepriser i dine Google Sheets med lethed. Hvis du har spørgsmål eller ønsker hjælp til at udvide funktionaliteten, så skriv gerne en kommentar!
0 kommentarer