0

我正在使用新的 Google 协作平台,我想在其中显示一个文本框,但我的目标是显示在 Google 工作表的单元格中写入的文本。所以我可以只编辑这张表中的内容,它也会在网站中改变。

我已经编写了这段代码,但它不起作用。有人知道我能做什么吗?

function doGet() {
 return HtmlService.createHtmlOutputFromFile('txtSheetToSite'); 
}

function getText(row, col) {
  const ss = SpreadsheetApp.openById("here_goes_the_sheet_id");
  const sheet = ss.getSheetByName("Orientacoes");
  var row = row;
  var col = col;
  
  var value = sheet.getRange(row, col).getValue();
  return value; 
}


<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    
    <script>
       function copyTxt(2,1){
          var text = google.script.run.getText();
          console.log(text);
          document.getElementById("titulo").innerText = text;
       }
       
       copyTxt();
    </script>
  </head>
  <body>
    <div id="titulo">  </div>
  </body>
</html>
4

1 回答 1

0

代码使用google.script.run了错误的方式。来自 https://developers.google.com/apps-script/guides/html/reference/run

Return——
void这个方法是异步的,不直接返回;但是,服务器端函数可以将一个值作为传递给成功处理程序的参数返回给客户端;此外,返回类型受到与参数类型相同的限制,除了表单元素不是合法的返回类型

代替

function copyTxt(2,1){
   var text = google.script.run.getText();
   console.log(text);
   document.getElementById("titulo").innerText = text;
}

经过

function copyTxt(){
   google.script.run.withSuccessHandler(function(text){
     console.log(text);
     document.getElementById("titulo").innerText = text;   
   })
   .getText(2,1);
   
}
于 2020-08-24T17:51:37.123 回答