我正在尝试从 football website 的图表中提取两个特定数字。 (PF 列、“Team Stats”和“Opp. Stats”行)并将它们作为 JavaScript 变量导入到我的网站,我可以用它进行数学运算等。到目前为止,我的解决方案是使用 Google Sheets 中的 IMPORTHTML 函数,创建一个表格,然后使用“发布到网络”功能将其压缩为一个表格,因为我不想陷入任何太疯狂的事情。 iframe。
我尝试使用 iframe 的对象属性来访问它,包括 getElementbyId 点属性等。
<h1>
<script>
var iframe = document.getElementById("data");
var elmnt = iframe.contentWindow.document;
//.getElementsByTagName("table")[0];
document.write(elmnt);
window.parent.document.getElementById('data')
</script>
</h1>
我希望输出正确的数字,但根据我正在尝试的属性,我得到了 [object HTMLDocument] 或未定义
最佳答案
为什么不使用 Sheets API ?
使用 API,您将使用这个简单的命令:
var result = Sheets.Spreadsheets.Values.get(spreadsheetId, range);
var numRows = result.values ? result.values.length : 0;
但是setup有点重
如果您不想,您仍然可以serialize table data .
这是 John Dyer 的作品:
function tableToJson(table) {
var data = []; // first row needs to be headers var headers = [];
for (var i=0; i<table.rows[0].cells.length; i++) {
headers[i] = table.rows[0].cells[i].innerHTML.toLowerCase().replace(/ /gi,'');
}
// go through cells
for (var i=1; i<table.rows.length; i++) {
var tableRow = table.rows[i]; var rowData = {};
for (var j=0; j<tableRow.cells.length; j++) {
rowData[ headers[j] ] = tableRow.cells[j].innerHTML;
} data.push(rowData);
}
return data;
}
您可以使用data[column][row]来获取单元格数据;
我认为在这种特定情况下使用 API 是最佳选择。
关于javascript - 如何从 iframe Google Sheets 访问单元格数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57665675/