0

我正在寻找 Google Word 文档的内容并将其放入文本框中。以下代码吐出错误:

function listBoxClick(e) {
  var tapp = UiApp.getActiveApplication();
  var docName = DocsList.find(e.parameter.doclist); //find the document with the same name as what the user clicked on
  var docContents = docName[0].getContentAsString(); //get contents of document
  tapp.getElementById("songboxID").setValue(songfile2); //set the value of the textBox to the contents of the document
  return tapp;
}

这将返回以下错误:

Unsupported conversion requested.

我在某处读到我们无法为 Google 文档执行此操作,但我们可以为我们上传的其他非 Google 文档执行此操作。那正确吗?


这是我不能再发布 5 个小时的答案,因为我是新手并且没有声誉:

在 Serge 的帮助下,这对我有用:

function listBoxClick(e) {
  var tapp = UiApp.getActiveApplication();
  var docName = DocsList.find(e.parameter.doclist); //get document name based on what user clicked on in listBox
  var docId = docName[0].getId(); //get document ID
  var content = DocumentApp.openById(docId).getText(); //get contents of document
  tapp.getElementById("songboxID").setValue(content); //set web app's textBox (called songboxID) to match the contents of the document the user clicked on
  return tapp;
}
4

1 回答 1

0

您必须使用DocumentApp.getText();来获取文档的文本内容。

在你的代码中它会变成:

function listBoxClick(e) {
  var tapp = UiApp.getActiveApplication();
  Logger.log(e.parameter.doclist)
  var docName = DocsList.find(e.parameter.doclist); //find the document with the same name as what the user clicked on
  var docId = docName[0].getId();
  Logger.log(docName[0].getName()+' = '+docId)
  var textContent = DocumentApp.openById(docId).getText();
  Logger.log(textContent)
  tapp.getElementById("songboxID").setValue(textContent); //set the value of the textBox to the contents of the document
  return tapp;
}

编辑:正如您在实验中注意到的那样,DocsList.find(e.parameter.doclist)返回的结果出乎您的意料……这仅仅是因为find操作员不仅搜索文档名称,还搜索文档内容。

为了解决这个问题,您应该添加一个小例程,根据文档名称检查查找查询的结果,如下所示:

var docName = DocsList.find(e.parameter.doclist); //find the document with the same name as what the user clicked on

      for(var d in docName){{
         if(docName[d].getName()==e.parameter.doclist){
         var docId = docName[d].getId();
        }
      }

这将确保您要查找的文档实际上是正确的。

PS:很抱歉没有立即提及……它只是从我的脑海中溜走;-​​)

于 2013-03-20T18:23:42.190 回答