【问题标题】:How to access cell data from iframe Google Sheets如何从 iframe Google 表格访问单元格数据
【发布时间】:2019-08-26 22:32:48
【问题描述】:

我正在尝试从football website 上的图表中提取两个特定数字(PF 列、“团队统计”行和“Opp. Stats”行)并将它们作为 JavaScript 变量导入我的网站,我可以这样做数学等用。到目前为止,我的解决方案是使用 Google 表格中的 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] 或未定义,具体取决于我正在尝试的属性

【问题讨论】:

    标签: javascript html iframe google-sheets


    【解决方案1】:

    你为什么不使用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 是最好的选择。

    【讨论】:

    • 我沿着 API 的路线走,它对我来说有点太复杂了。我希望在 Vanilla JS 中执行此操作,并计划仅将数据从我家用计算机上的一个选项卡真正传输到另一个选项卡(尽管是自动化的,而且很多都是重复的,因此需要这样做)。由于我可以毫不费力地加载 iframe,这似乎是一条更好的路线,但我在这三个方面都在苦苦挣扎。非常感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-19
    • 1970-01-01
    • 2017-04-09
    相关资源
    最近更新 更多