小编cey*_*eyx的帖子

在光标位置将表格插入谷歌文档

我正在处理Google文档添加,将文本转换为表格.它允许用户1)选择一些文本或2)将光标放在他们想要的文本中,当单击侧边栏中的自定义按钮时,脚本将:

  1. 在光标位置插入单行单个单元格表或所选文本的startIndex,
  2. 在该单元格内放置用户选择的文本或放置光标的元素的完整文本,
  3. 删除原始选定的文本/元素,以便仅保留表

(基本上,这只是"绘制"围绕所选文本或元素的表格)

文档概述显示可以通过插入文本var element = cursor.insertText('???');,但没有类似的插入其他元素的方法.因此,我一直在尝试使用insertTable(childIndex, cells)不同程度的成功.着眼于在用户只需将光标里面的元素的情况下,我可以插入表格与正确的文本,并删除原文,但我不能找到一种方法来插入表在正确的位置.我试过以下,但无济于事:

  1. var newTable = body.insertTable(cursor.getOffset(), [['Test Text']]); - 这会创建表,但会将其插入错误的位置,似乎基于文本放置在文本中的位置,通常朝向文档的开头.

  2. var el = cursor.getElement().asBody(); var newTable = el.insertTable(0, [['Test Text']]); - 这没什么

  3. var el = cursor.getElement().getParent().asBody(); var newTable = el.insertTable(0, [['Test Text']]); - 这没什么

  4. var el = cursor.getElement(); var parent = el.getParent().getChildIndex(el); var newTable = body.insertTable(parent, [['Test Text']]); - 这会在表格的最开头插入表格.

搜索Stack Overflow会产生这个非常相似的问题,建议在光标位置插入一些占位符文本,然后在文档中搜索插入的字符串并放置一个表格.这种方法有两个主要问题:

  1. 我需要直接修改插入点周围的文本,插入额外的文本似乎可能会使这更难,并且
  2. 更重要的是,我仍然不知道如何获得表的插入点的正确位置.

如果任何人都可以扩展占位符文本方法,或者可以提供新的解决方案,那将非常有帮助.谢谢!

google-docs google-apps-script

7
推荐指数
1
解决办法
1195
查看次数

如何在String中使用contains()和retain()?

我正在尝试使用该retain(...)方法从向量中过滤掉值.目前,我的代码到目前为止

let results = get_data(); // Returns Result<Vec<MyData>, Box<Error>>

match results {
    Ok(mut my_data) => {

        // Make sure that `name` is not None
        myData.retain(|ref d| d.name.is_some());

        // Only keep data if 'name' is in this list
        let names = ["Alice", "Bob", "Claire"];
        my_data.retain(|ref d| names.contains(d.name.unwrap().as_str()));
    },
    Err(_) => {}
}
Run Code Online (Sandbox Code Playgroud)

但是,这会产生错误

|
|     my_data.retain(|ref d| names.contains(d.name.unwrap().as_str()));
|                                           ^^^^^^^^^^^^^^^^^^^^^^^^ expected &str, found str
|
= note: expected type `&&str`
           found type `&str`
Run Code Online (Sandbox Code Playgroud)

看起来编译器在这里告诉我两个不同的东西,但在这两种情况下它似乎都想要一个额外的参考.但是,当我尝试将相关行更改&names.contains(d.name.unwrap().as_str())为时,编译器会抛出以下错误.

|
|     my_data.retain(|ref …
Run Code Online (Sandbox Code Playgroud)

iterator rust

-1
推荐指数
1
解决办法
156
查看次数

标签 统计

google-apps-script ×1

google-docs ×1

iterator ×1

rust ×1