【问题标题】:Text Replacement using app script for google sheets使用谷歌表格的应用脚本替换文本
【发布时间】:2020-05-25 23:24:39
【问题描述】:

问题

我在使用应用脚本替换文本时遇到了一些问题。我想在下面获得所需的输出,但目前在附加逗号和缺少撇号方面存在一些问题。

代码

function onEdit() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1');
  var row_count = sheet.getLastRow();
  var input_data = sheet.getRange(1, 1, row_count, 15).getValues();
  var data = [];
  for (var i = 0; i < row_count; i++) {

      var row_data; 

        // Table Row
      if (input_data[i][0] == "table") {
        row_data = "INSERT INTO " + input_data[i][1];

        // Fields Row
      } else if (input_data[i][0] == "fields") {
        row_data = "(" + input_data[i] + ")";

        // Values Row
      } else if (input_data[i][0] == "values") {
        row_data = "VALUES";

        // Entry Row
      } else if (input_data[i][0] == "entry") {
        row_data = "(" + input_data[i] + ");";

        // Empty Row
      } else if (input_data[i][0] == "") {
        row_data = "";
      }

      data.push([row_data]);
  }
  sheet.getRange(1, 16, data.length, 1).setValues(data);
}

数据

电流输出

期望的输出

【问题讨论】:

    标签: google-apps-script google-sheets


    【解决方案1】:

    使用array.join:

    row_data = "(" + input_data[i].filter(e=> e!=="").join(", ") + ")";
    

    或者

    row_data = "('" + input_data[i].filter(e=> e!=="").join("', '") + "')";
    

    【讨论】:

    • 如何忽略结果中的 a 列?
    • 我也得到了“格林威治同时”出现在我不想要的响应中。
    • @Tris 查看 array.shift() 和 str.split()
    • 下面的两行正是我想要的。谢谢你的帮助。 row_data = input_data[i].shift(); row_data = "('" + input_data[i].filter(e=&gt; e!=="").join("', '").replace(" GMT+0000 (Greenwich Mean Time)", "") + "')";
    • 我遇到了一个新的,如果我在一行中有多个条目,则只有第一个值被替换为替换......你能帮忙吗? row_data = "('" + input_data[i].filter(e=&gt; e!=="").join("', '").replace("'NULL'", "NULL") + "'),";
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-08
    • 1970-01-01
    • 2015-02-16
    • 2012-12-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多