Google 应用程序脚本中 body.findText 的问题
Problems with body.findText in Google apps script
我有一个 Google 文档,它是在 Word 中创建并导入的。我想在文本中找到一个 'marker',以便我可以在该点插入一个 table。但是,我无法继续,因为我的脚本一直在“findText()”点失败。我在这里看了很多类似问题的答案,并使用了我认为相同的方法,但它仍然失败了!
而不是此处的 post 代码,post 尝试 运行 脚本时我得到的确切内容的屏幕截图似乎更清楚。执行日志中的前两项证明 a) 文档被正确打开,b) 正文被正确识别。文本后面肯定有一个“$”符号,那为什么我会收到错误消息?
脚本
var doc = DocumentApp.openByUrl("https://docs.google.com/document/d/###/edit");
var body = doc.getBody();
var tblLoc = body.findText("$");
console.log(tblLoc)
修改点:
从你的下图中,
- 我认为您的问题的原因是
$
of body.findText("$")
。
- 在这种情况下,我认为需要添加
\
like body.findText("\$")
findText()
的方法returnsDocumentApp.RangeElement
的对象。因此,当您使用 console.log(tblLoc)
并检索到值时,{}
会显示在日志中。
- 当您想查看检索到的值时,例如,您可以使用
console.log(tblLoc.getElement().asText().getText())
。
当以上几点反映到你的脚本中,就变成了下面这样。
修改后的脚本:
const doc = DocumentApp.openByUrl("https://docs.google.com/document/d/###/edit");
const body = doc.getBody();
const tblLoc = body.findText("\$");
console.log(tblLoc.getElement().asText().getText())
参考:
我有一个 Google 文档,它是在 Word 中创建并导入的。我想在文本中找到一个 'marker',以便我可以在该点插入一个 table。但是,我无法继续,因为我的脚本一直在“findText()”点失败。我在这里看了很多类似问题的答案,并使用了我认为相同的方法,但它仍然失败了!
而不是此处的 post 代码,post 尝试 运行 脚本时我得到的确切内容的屏幕截图似乎更清楚。执行日志中的前两项证明 a) 文档被正确打开,b) 正文被正确识别。文本后面肯定有一个“$”符号,那为什么我会收到错误消息?
脚本
var doc = DocumentApp.openByUrl("https://docs.google.com/document/d/###/edit");
var body = doc.getBody();
var tblLoc = body.findText("$");
console.log(tblLoc)
修改点:
从你的下图中,
- 我认为您的问题的原因是
$
ofbody.findText("$")
。 - 在这种情况下,我认为需要添加
\
likebody.findText("\$")
- 我认为您的问题的原因是
findText()
的方法returnsDocumentApp.RangeElement
的对象。因此,当您使用console.log(tblLoc)
并检索到值时,{}
会显示在日志中。- 当您想查看检索到的值时,例如,您可以使用
console.log(tblLoc.getElement().asText().getText())
。
- 当您想查看检索到的值时,例如,您可以使用
当以上几点反映到你的脚本中,就变成了下面这样。
修改后的脚本:
const doc = DocumentApp.openByUrl("https://docs.google.com/document/d/###/edit");
const body = doc.getBody();
const tblLoc = body.findText("\$");
console.log(tblLoc.getElement().asText().getText())