Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将单元格视为数组_Javascript_Google Apps Script_Google Sheets - Fatal编程技术网

Javascript 将单元格视为数组

Javascript 将单元格视为数组,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我有一些数据,我必须创建一个pdf。在原始数据的一个单元格中,有一个重量列表,例如12.34kg、15.62kg、34.34kg。当我将它们写入另一张表以生成pdf时,我希望将每个重量写入不同的单元格,一个在另一个单元格下,例如:单元格C2中的12.34kg单元格C3中的15.62kg单元格C4中的34.34kg单元格 我正在努力完成这项任务。。。这就是我试图执行但不起作用的方式,setValues方法存在问题 function mySplit() { var doc = Spreadsh

我有一些数据,我必须创建一个pdf。在原始数据的一个单元格中,有一个重量列表,例如12.34kg、15.62kg、34.34kg。当我将它们写入另一张表以生成pdf时,我希望将每个重量写入不同的单元格,一个在另一个单元格下,例如:单元格C2中的12.34kg单元格C3中的15.62kg单元格C4中的34.34kg单元格

我正在努力完成这项任务。。。这就是我试图执行但不起作用的方式,setValues方法存在问题

function mySplit() { 
  var doc = SpreadsheetApp.getActive().getSheetByName("Sheet2"); 
  var cell = String(doc.getRange("J21").getValues()); 
  var array =[{}]; 
  array = cell.split(","); 
  for (var j = 0; j<= array1.length; j++)
  { 
    doc.getRange(21+j,10,1,1).setValues(array[0][j]);  
  } 
}
函数mySplit(){
var doc=SpreadsheetApp.getActive().getSheetByName(“Sheet2”);
var cell=String(doc.getRange(“J21”).getValues());
变量数组=[{}];
数组=单元格。拆分(“,”);

对于(var j=0;j问题:

  • 在代码中,使用
    getValues()
    获取单个 元素。在这个特定场景中,应该使用
    getValue()
    相反

  • 您不需要预定义
    数组
    ,而且在您的代码中
    数组1
    在任何地方都没有定义

  • String()
    也是冗余和错误的,在这种情况下,单元格值默认为String


解决方案:

假设
12.34kg、15.62kg、34.34kg
在单元格J21上,下面的脚本将分别填充
12.34kg
15.62kg
34.34kg
在单元格J21J22J23中:

function mySplit() { 
  
  var doc = SpreadsheetApp.getActive().getSheetByName("Sheet2"); 
  var cell = doc.getRange("J21").getValue();
  var array = cell.split(","); 
  
  for (var j = 0; j<= array.length; j++)
  {
    doc.getRange(21+j,10).setValue(array[j]);  
  } 

}
函数mySplit(){
var doc=SpreadsheetApp.getActive().getSheetByName(“Sheet2”);
var cell=doc.getRange(“J21”).getValue();
var数组=cell.split(“,”);

对于(var j=0;j问题:

  • 在代码中,使用
    getValues()
    获取单个 元素。在这个特定场景中,应该使用
    getValue()
    相反

  • 您不需要预定义
    数组
    ,而且在您的代码中
    数组1
    在任何地方都没有定义

  • String()
    也是冗余和错误的,在这种情况下,单元格值默认为String


解决方案:

假设
12.34kg、15.62kg、34.34kg
在单元格J21上,下面的脚本将分别填充
12.34kg
15.62kg
34.34kg
在单元格J21J22J23中:

function mySplit() { 
  
  var doc = SpreadsheetApp.getActive().getSheetByName("Sheet2"); 
  var cell = doc.getRange("J21").getValue();
  var array = cell.split(","); 
  
  for (var j = 0; j<= array.length; j++)
  {
    doc.getRange(21+j,10).setValue(array[j]);  
  } 

}
函数mySplit(){
var doc=SpreadsheetApp.getActive().getSheetByName(“Sheet2”);
var cell=doc.getRange(“J21”).getValue();
var数组=cell.split(“,”);

对于(var j=0;j虽然已经有解决问题的答案,但由于效率低下,不建议通过单独设置每个不同单元格的值

如果可能,建议使用批处理操作一次写入所有单元格:可用于此操作(对于
getValue()
getValues()
也可以这样说)

setValues(values)
需要一个二维值数组,因此字符串
单元格
应转换为二维数组(其中外部数组指不同的行,内部数组元素指列)。为此,可以使用和:

function mySplit() {   
  var doc = SpreadsheetApp.getActive().getSheetByName("Sheet2"); 
  var cell = doc.getRange("J21").getValue();
  var array = cell.split(",").map(el => [el]);
  doc.getRange(21, 10, array.length, array[0].length).setValues(array);
}
参考:

虽然已经有解决问题的答案,但由于效率低下,不建议通过单独设置每个不同单元格的值

如果可能,建议使用批处理操作一次写入所有单元格:可用于此操作(对于
getValue()
getValues()
也可以这样说)

setValues(values)
需要一个二维值数组,因此字符串
单元格
应转换为二维数组(其中外部数组指不同的行,内部数组元素指列)。为此,可以使用和:

function mySplit() {   
  var doc = SpreadsheetApp.getActive().getSheetByName("Sheet2"); 
  var cell = doc.getRange("J21").getValue();
  var array = cell.split(",").map(el => [el]);
  doc.getRange(21, 10, array.length, array[0].length).setValues(array);
}
参考: