【问题标题】:remove newline from Google Doc Table content从 Google Doc Table 内容中删除换行符
【发布时间】:2016-09-15 08:29:21
【问题描述】:

我遇到了一个问题,当我将图像插入 Google Docs 中的单元格时,它还会添加一个我似乎无法摆脱的换行符...我已经尝试了 here 的建议但这由于某种原因不起作用。 这是我的代码:

function myFunction() {
  var body = DocumentApp.getActiveDocument().getBody();
  body.clear();
  var table = body.appendTable();
  var tr = table.appendTableRow()
  tr.appendTableCell();
  tr.appendTableCell();
  var resp01 = UrlFetchApp.fetch("http://www.cincinnati-oh.gov/cityofcincinnati/assets/Image/Logos/cityofcincinnati.png");

  var cell = table.getRow(0).getCell(0);
  cell.insertImage(0,resp01.getBlob());
    table.getCell(0,0).editAsText().replaceText("\\v+", "");
}

提前致谢!

【问题讨论】:

  • 我不确定为什么 Apps 脚本在正则表达式搜索中无法识别 \n\r:/ 针对您的用例的快速而肮脏的解决方案是像这样删除单元格的文本:table.getCell(0,0).setText(""); 希望有人提出更好的解决方案(:
  • 您是否尝试使用new RegExp() 构建正则表达式?它往往会产生更少的问题
  • @RobinGertenbach 能否通过代码示例告诉我如何使用它。
  • 有关构造和示例,请参见 here
  • @RobinGertenbach replaceText 方法不是 JavaScript 方法,不接受 JavaScript 的正则表达式对象。

标签: google-apps-script google-docs


【解决方案1】:

我无法使用replaceText 删除字符(顺便说一下,字符代码为 10,而不是 13)。核选项是降到纯字符串级别并使用 JavaScript 替换方法:

cell.setText(cell.getText().replace(/\n+$/, ""));

这将删除新行。正如我所说,这是核选项:单元格的任何格式(粗体、斜体)都将丢失。

如果单元格不希望有除图像之外的任何文本,则较短的cell.setText(""); 具有相同的效果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-12
    • 1970-01-01
    • 1970-01-01
    • 2013-11-06
    • 2011-05-24
    相关资源
    最近更新 更多