javascript - 将数组转换为对象并将值粘贴到不同的列中

标签 javascript arrays google-apps-script google-sheets

我有一个列,每行都包含这样的文本(文本不同)- ABC1 London - ACompany: Ground Floor, Main Tower, 127 Bridge Street, London AB1 1JZ .

该脚本我从该文本中提取了城市名称并将其存储到一个新数组中。

当我尝试将这些值写入新列时,我得到 Cannot convert Array to Object[][]. (line 18, file "Code") .

我尝试再次循环遍历该数组,但它返回 101 个数组(我有 101 行),因此当我将 city[0].length 设置为宽度时,它会将其粘贴到 101 列上。

我需要的只是从文本中获取城市名称并将其粘贴到同一张纸上的不同列中 - 例如。文本位于 B12 列,我想将城市名称粘贴到 R12 中 - 希望它有意义。

请参阅下面我的代码

function getCity() {
  var ss = SpreadsheetApp.openById('ID');
  var sh = ss.getSheetByName('Response Data');
  var range = sh.getDataRange();
  var values = range.getValues();
  var cities = [];
  var newCity = []
  for (var i=1;i<values.length;i++)
  {

    var cellText = values[i][11];
    if(typeof cellText === 'number') {continue;};
    cities.push(cellText.substring(5, (cellText + " -").indexOf("-") - 1));
  }

  Logger.log(cities);

  sh.getRange(2, 18, cities.length, 1).setValues(cities);


}

谢谢!

最佳答案

尝试此代码,看看是否遇到相同的错误,

function getCity() {
  var ss = SpreadsheetApp.openById('ID');
  var sh = ss.getSheetByName('Response Data');
  var range = sh.getDataRange();
  var values = range.getValues();
  var cities = [];
  var newCity = []
  for (var i=1;i<values.length;i++)
  {
    var cellText = values[i][11];
    if(typeof cellText === 'number') {continue;};
    cities.push([cellText.substring(5, (cellText + " -").indexOf("-") - 1)]);
  }
  Logger.log(cities);
  sh.getRange(2,18,cities.length,1).setValues(cities);
}

关于javascript - 将数组转换为对象并将值粘贴到不同的列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46194509/

相关文章:

html - 从 HTML 创建 PDF 并设置页面大小和页边距

javascript - 如何将 momentjs 添加到缩小的 bundle 文件中?

javascript - JGraph 中的 eval 隐藏代码与混淆\打包

javascript - 将数组从一行数组转换为多行数组

c# - 改进 O(n^2) 算法

javascript - `return` 关键字在 `forEach` 函数中意味着什么?

button - 如何使用应用程序脚本创建按钮并向其分配脚本?

javascript - AJax 变量没有发送到 php 变量

javascript - 使用 underscorejs 获取所有类型的总数和基于组(类型)的计数

javascript - 谷歌应用脚​​本: open document from menu