0

从我所做的研究来看,默认情况下似乎没有办法将日期选择器填充到谷歌电子表格的空单元格中。单元格中必须已经有一个日期才能弹出日期选择器。在编写脚本时,我很绿色。我了解大部分术语,但我不确定从哪里开始创建它。有人可以帮我吗?我希望 datepicker 填充特定列中的每个单元格。

4

2 回答 2

1

我打算指出在 WebApps 上的 Google 电子表格中添加日期选择器,但你找到了。

正如您所指出的,只有在单元格中有有效日期时才会出现日期选择器。也没有对 datepicker 小部件的编程控制。

此函数将使用相同的默认值填充任何范围内的每个单元格,并且该值可以是电子表格支持的任何类型。

/**
 * Fill a range with a default value.
 *
 * @param {Range} rangeFill A spreadsheet range to be filled
 * @param {Object} value The default value to fill the range with
 */
function rangeDefault( rangeFill, value ) {
  // Fill a two-dimensional array with default values
  var defaults = [[]];
  // Dimension the array to match the input range
  var height = rangeFill.getLastRow() - rangeFill.getRow() + 1;
  var width = rangeFill.getLastColumn() - rangeFill.getColumn() + 1;
  for (var row=0; row < height; row++ ) {
    defaults[row]=[];
    for (var col=0; col < width; col++ ) {
      defaults[row][col] = value;
    }
  }
  // Fill the range with the array contents.
  rangeFill.setValues(defaults);
}

为了便于在电子表格中使用,这里有一个菜单功能。只需选择您要填充的范围,然后从“自定义菜单”中选择“日期填充”,选择将填充今天的日期。

/**
 * Menu function - fill the currently selected range with today's date.
 */
function dateFill() {
  var today = new Date();
  var defaultDate = new Date( today.getFullYear(), today.getMonth()+1, today.getDate() );
  rangeDefault( SpreadsheetApp.getActiveSpreadsheet().getActiveRange(), defaultDate);
}

function onOpen() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var entries = [{
    name : "Date Fill",
    functionName : "dateFill"
  }];
  sheet.addMenu("Custom Menu", entries);
};
于 2013-05-01T17:21:01.267 回答
0

正如(在此 A 的早期版本之后,我现在注意到了!)OP 在 Web 应用程序中发现:

使用 Criteria: Date and is a valid date 将验证应用于所选范围,然后只需双击该范围内的单元格即可调用日期选择器。

于 2014-07-04T23:23:21.597 回答