Javascript 将单元格视为数组
我有一些数据,我必须创建一个pdf。在原始数据的一个单元格中,有一个重量列表,例如12.34kg、15.62kg、34.34kg。当我将它们写入另一张表以生成pdf时,我希望将每个重量写入不同的单元格,一个在另一个单元格下,例如:单元格C2中的12.34kg单元格C3中的15.62kg单元格C4中的34.34kg单元格 我正在努力完成这项任务。。。这就是我试图执行但不起作用的方式,setValues方法存在问题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
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
在单元格J21、J22和J23中:
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
在单元格J21、J22和J23中:
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);
}
参考: