【问题标题】:Adding new line to text in Google spreadsheet cell via apps script通过应用程序脚本在 Google 电子表格单元格中的文本中添加新行
【发布时间】:2015-03-19 16:37:25
【问题描述】:

我有一个应用程序脚本,它从一个电子表格中的多个单元格中获取电子邮件地址,并将它们添加到另一个电子表格中的一个单元格中。 目前,电子邮件地址已添加到该单元格并由“,”分隔。

我想将电子邮件地址添加到同一个单元格中,但在每个地址后添加一个新行。

我知道在手动添加文本时,可以通过键入 CTRL-Enter 在单元格中添加新行。

如何在应用脚本中实现这一点?

到目前为止,我已尝试将“\n”或“\r”或“\r\n”附加到字符串,但无济于事,因此我将代码恢复为添加“,”。

sheet = SpreadsheetApp.getActiveSheet();
sheet.clear();

sheet.appendRow(["Num Emails", "Emails"]);

var LMEmails = "";
var count  = 0;
for (var i = 0; i < reviewers.LMEmails.length; i++) {
  if (count) {
    LMEmails += ", " + reviewers.LMEmails[i];
  } else {
    LMEmails += reviewers.LMEmails[i];
  }
  count++;
}

data = [count, LMEmails];

sheet.appendRow(data);

如果有人能提供帮助,我将不胜感激

问候 克鲁兹

【问题讨论】:

  • 这里\nsetValue() 配合得很好。 LMEmails += "\n" + reviewers.LMEmails[i]; 会导致什么?
  • 通向xxxxx@xxx.comyyyyy@yyy.comzzzzz@zzz.com,但是如你所见,我没有使用setValue()。实际上,我有更多的标题和列要填充,你看到的代码被截断了
  • 使用 setValue 代替 appendRow。 ss.getRange( ss.getLastRow(), 0, 1, 2).setValue(data);
  • 我试过了,但不是更新下一个空行,而是更新同一行(顶部),奇怪的是,它用相同的值更新行中的所有单元格,第一个值数据数组。
  • 在 getRange 中出错,正确的应该是:ss.getRange( ss.getLastRow() + 1, 1, 1, 2).setValue(data);

标签: google-apps-script google-sheets


【解决方案1】:

在搜索了同样的问题后,这是我的解决方案:

var stringToDisplay = 'FirstBit' + String.fromCharCode(10) + 'SecondBit';

然后

workSheet.getRange(1,1).setValue(stringToDisplay);

输出将在一个单元格中,:
第一比特
秒位

【讨论】:

    【解决方案2】:

    如果 之后没有字符,Google 电子表格似乎会忽略新行。

    使用“/n”可以正常工作,只要您在其后添加至少一个其他字符,这可能是一个空格,如下所示。

    例如:

    var myString = 'First Bit' + "\n " + "Second Bit";
    

    【讨论】:

      【解决方案3】:

      应该是:

      data = [[count, LMEmails]];
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多