Google应用脚本无法正确识别表格

时间:2014-04-23 14:23:26

标签: google-apps-script google-sheets-api

我正在运行模板化的google脚本,该脚本构建了一个包含Google电子表格内容的html页面。

当我使用电子表格https://docs.google.com/spreadsheet/ccc?key=0AtDy2rbIwVyldE82MG50SkR3UWYyam5YRVd1ajZlcnc&usp=drive_web#gid=0运行脚本时,一切正常。

当我使用电子表格https://docs.google.com/spreadsheets/d/1A0Kd_BKeO9IB-SJvRMhC68q0XMQLrXarVVPlFJa_fMg/edit#gid=0运行脚本时,我收到的消息是我需要先选择一个有效的电子表格。

这是脚本:

function doGet() {
  return HtmlService
      .createTemplateFromFile('index')
      .evaluate();
}

function getData() {
  var mysheet = SpreadsheetApp.openById('SPREADSHEET_KEY').getDataRange().getValues();
  return mysheet;
}

这是index.html文件:

<? var data = getData(); ?>
<table>
  <? for (var i = 0; i < data.length; i++) { ?>
    <tr>
      <? for (var j = 0; j < data[i].length; j++) { ?>
        <td><?= data[i][j] ?></td>
      <? } ?>
    </tr>
  <? } ?>
</table>

问题似乎在于第二个电子表格。

任何帮助都会被贬低。

2 个答案:

答案 0 :(得分:0)

您当前分配给mysheet的引用是指整个文档。您仍然需要获取包含数据的工作表的引用。

function getData() {
  var spreadsheet = SpreadsheetApp.openById('SPREADSHEET_KEY').getDataRange().getValues();
  var mysheet = spreadsheet.getSheetByName('NameOfTheSheet');
  return mysheet;
}

答案 1 :(得分:0)

使用.getActiveSheet() 并且脚本将是: function doGet(){   返回HtmlService       .createTemplateFromFile(&#39;指数&#39;)       。评估(); }

function getData(){   var mysheet = SpreadsheetApp.openById(&#39; SPREADSHEET_KEY&#39;) .getActiveSheet() .getDataRange()。getValues();   返回mysheet; }