【问题标题】:Google Docs Apps Script get number of columnsGoogle Docs Apps 脚本获取列数
【发布时间】:2021-07-15 21:47:35
【问题描述】:

在 Google Doc 上,您可以从“格式”>“列”中设置列。不过,现在我想从 Apps 脚本访问这些列以确认列数。我什至不需要修改它们,只需访问。我没有从文档中找到任何让我兴奋的东西,所以我不知道是否存在允许这样做的文档服务扩展。 很抱歉没有包含任何代码,但我没有明显的代码可以显示。我确实创建了一个包含 2 列的文档,以确切了解我在说什么。 https://docs.google.com/document/d/1MyttroeN4kPUm9PfYZnTe_gJqstM3Gb5q3vS3c84dNw/edit

【问题讨论】:

  • Doc 脚本好像还没有这个属性:stackoverflow.com/questions/41927619/…
  • 最近的其中一个 cmets 提到了 ColumnBreak 段落元素,但这个 API 是一个我不知道如何直接访问/使用的 API。
  • 我确定ColumBreak 不是您想要的。这只是一个休息符号。您可以通过“插入”>“中断”>“分栏符”插入它。至于 API,这里是一个如何使用它的示例:stackoverflow.com/questions/68018349/…

标签: google-apps-script google-docs


【解决方案1】:

回答

可以使用Google Docs APIget方法

怎么做

  1. 在 Apps 脚本中,启用 Advanced Docs Service
  2. 使用方法get
  3. 检查名为content 的数组。
  4. content 的每个元素中搜索一个名为sectionBreak 的对象。
  5. 检查对象是否有以下数据:sectionBreak>sectionStyle>columnProperties
  6. 取数组columnProperties的长度。
  7. (请记住,columnProperties 的第一个出现在 content 的第一个元素中,跳过它并从第二个元素开始循环。

代码

function myFunction() {
  var id = DocumentApp.getActiveDocument().getId()
  var result = Docs.Documents.get(id)
  var content = result["body"]["content"]
  for (var i = 1; i < 20; i++) {
    try {
      var cols = content[i]["sectionBreak"]["sectionStyle"]["columnProperties"]
      console.log('number of columns: ' + cols.length)
    } catch (error) {
    }

  }
}

参考

【讨论】:

  • 谢谢!我希望在高级服务中有类似的东西
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-16
  • 1970-01-01
  • 1970-01-01
  • 2019-10-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多