我在 Google 表格中使用以下腳本從 Yahoo!Finance 檢索某些公司(由股票代碼表示)屬性(以 JSON 格式)并將它們呈現在作業表中的相鄰單元格中。
我正在檢索 3 個屬性;此串列將在未來擴展。我目前正在嘗試實作正確的錯誤處理。
function yahooFinance(symbol) {
const url = 'https://query2.finance.yahoo.com/v10/finance/quoteSummary/' encodeURI(symbol)
'?modules=price,assetProfile,summaryDetail,incomeStatementHistory,'
'balanceSheetHistory,defaultKeyStatistics,financialData,calendarEvents,'
'recommendationTrend,upgradeDowngradeHistory,majorHoldersBreakdown'
;
const response = UrlFetchApp.fetch(url, { muteHttpExceptions: true });
const responseCode = response.getResponseCode();
if (responseCode === 200) {
const quote = JSON.parse(response.getContentText());
const summaryDetail = quote.quoteSummary.result[0].summaryDetail;
const divYield = summaryDetail.dividendYield.fmt || "-";
const payoutRatio = summaryDetail.payoutRatio.fmt || "-";
const marketCap = summaryDetail.marketCap.fmt || "-";
return [[ divYield , payoutRatio, marketCap ]];
}
else {
return "-";
}
}
問題是:如果某個符號的某個屬性不存在,Google 表格會回傳錯誤:#Error TypeError: Cannot read property 'marketCap' of undefined (line 43).
我的問題是:在這種情況下,我怎樣才能回傳一個-(連字符)?
uj5u.com熱心網友回復:
將代碼行替換為
const marketCap = summaryDetail.marketCap == null ? '-' : summaryDetail.marketCap.fmt;
uj5u.com熱心網友回復:
考慮為要系結值的單元格設定一個公式。
改編自此答案的示例:
var cell = sheet.getRange("B5");
cell.setFormula("=IFNA(B5,'Invalid value')");
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/463829.html
上一篇:如何在單擊選擇選項時更改顯示類
