Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.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 Google电子表格脚本编辑器:如何用默认值0替换空单元格_Javascript_Gwt_Google Sheets - Fatal编程技术网

Javascript Google电子表格脚本编辑器:如何用默认值0替换空单元格

Javascript Google电子表格脚本编辑器:如何用默认值0替换空单元格,javascript,gwt,google-sheets,Javascript,Gwt,Google Sheets,我在试图找出如何用默认值0替换空单元格时遇到了一些问题。下面是我使用的代码,它适用于1个单元格,但不会填充列的其余部分。我知道我缺少一个for循环——我已经用for循环测试过它,但是有一段时间,这两个循环对我都不起作用。有人能帮我吗 function onEdit(event) { var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var rng = sheet.getRange(3,4,sheet.g

我在试图找出如何用默认值0替换空单元格时遇到了一些问题。下面是我使用的代码,它适用于1个单元格,但不会填充列的其余部分。我知道我缺少一个for循环——我已经用for循环测试过它,但是有一段时间,这两个循环对我都不起作用。有人能帮我吗

function onEdit(event) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var rng = sheet.getRange(3,4,sheet.getLastRow());
  var data = rng.getValues();

  if(data === "") {
      rng.setValue(0);
  }
}
试试下面的脚本

function fillWithZero() {
var ss = SpreadsheetApp.getActive()
    .getSheetByName('Sheet1');
var range = ss.getRange("A:B")
    .offset(0, 0, ss.getDataRange()
        .getNumRows());
range.setValues(range.getValues()
    .map(function (row) {
        return row.map(function (cell) {
            return !cell ? 0 : cell;
        });
    }));
}
更改工作表名称和范围以适合您,看看是否适合您?

请尝试下面的脚本

function fillWithZero() {
var ss = SpreadsheetApp.getActive()
    .getSheetByName('Sheet1');
var range = ss.getRange("A:B")
    .offset(0, 0, ss.getDataRange()
        .getNumRows());
range.setValues(range.getValues()
    .map(function (row) {
        return row.map(function (cell) {
            return !cell ? 0 : cell;
        });
    }));
}

更改工作表名称和范围以适合您,看看是否适合您?

我稍微修改了您的代码:

function siftBlanks() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var colToZero = 2;

  var data = sheet.getRange(1,colToZero,sheet.getMaxRows()).getValues();

  var blank = data.map(testBlank); // this returns an array of true or false
  for (var i=0;i<data.length;i++){
    if(blank[i]){
      data[i] = ["0"];
    }
  }
  sheet.getRange(1,colToZero,sheet.getMaxRows()).setValues(data);
}

function testBlank(arg){
  return arg=="";
}
函数siftBlanks(){
var sheet=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var colToZero=2;
var data=sheet.getRange(1,colToZero,sheet.getMaxRows()).getValues();
var blank=data.map(testBlank);//返回一个true或false数组

对于(var i=0;i我稍微修改了您的代码:

function siftBlanks() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var colToZero = 2;

  var data = sheet.getRange(1,colToZero,sheet.getMaxRows()).getValues();

  var blank = data.map(testBlank); // this returns an array of true or false
  for (var i=0;i<data.length;i++){
    if(blank[i]){
      data[i] = ["0"];
    }
  }
  sheet.getRange(1,colToZero,sheet.getMaxRows()).setValues(data);
}

function testBlank(arg){
  return arg=="";
}
函数siftBlanks(){
var sheet=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var colToZero=2;
var data=sheet.getRange(1,colToZero,sheet.getMaxRows()).getValues();
var blank=data.map(testBlank);//返回一个true或false数组
对于(var i=0;i
函数emptycellfilling(){
var ss=SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1');
对于(var i=2;i
函数emptycellfilling(){
var ss=SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1');
对于(var i=2;i