javascript 入力シートをコピーして指定の范囲のセルの値を初期化する。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 入力シートをコピーして指定の范囲のセルの値を初期化する。相关的知识,希望对你有一定的参考价值。

大量のデータを処理する際は、複数の範囲に対して、配列を使用して
一度のメソッド呼び出しで値を更新するようにしたほうが高速化できる。

```js
newSheet.getRange(3, 5, lastRow-3, 8-5).setValues(vals);
```

例えばC2:Eという範囲の場合は下記のようになる。

```js
var row = 2; // 2
var col = 3; // C (A=1, B=2, C=3, D=4, E=5)
var rowSize = sheet.getDataRange().getLastRow() - row;
var colSize = 5 - col;
sheet.getRange(row, col, rowSize, colSize).setValues(vals);
```
/**
 * 特定のシートのコピーを生成する。
 */
function copyTestSheet() {
  var prefix = "入力";
  var ss = SpreadsheetApp.getActiveSpreadsheet()
  var sheet = ss.getSheetByName(prefix + "テンプレート");
  var newSheetName = prefix + getTodayString("/");
  sheet.copyTo(ss).setName(newSheetName)

  // コピーしたシートを対象にデータを初期化
  var newSheet = SpreadsheetApp.getActive().getSheetByName(newSheetName);
  var lastRow = newSheet.getDataRange().getLastRow();
  var vals = getInitMultiArray(8-5, lastRow-3);
  newSheet.getRange(3, 5, lastRow-3, 8-5).setValues(vals);
}

/**
 * 今日の年月日文字列を返す
 * @param sep 年、月、日を区切る文字
 * @return 今日の日付
 */
function getTodayString(sep) {
  var date  = new Date();
  var array = [
      date.getFullYear()
    , date.getMonth() + 1
    , date.getDate()
  ];
  return array.join(sep);
}

/**
 * 初期化した二次元配列を生成する。
 * @param x 列数
 * @param y 行数
 * @return 二次元配列
 */
function getInitMultiArray(x, y) {
  var arr = new Array(y);
  for (var i=0; i<y; i++) {
    var row = new Array(x);
    for (var j=0; j<x; j++) {
      row[j] = "";
    }
    arr[i] = row;
  }
  return arr;
}

以上是关于javascript 入力シートをコピーして指定の范囲のセルの値を初期化する。的主要内容,如果未能解决你的问题,请参考以下文章

和食とアートをスタイリッシュに楽しむHIVE 06 ART

markdown Redis的SortedSet的のをコピー

python 大熊猫の数据帧の値を他の配列を参照して条件付きで操作するスクリプトを考えてみました。この例では辞书的に「名字のリスト」を阵列として参照しながら,姓ー名の入ったデータ项目の荒いバリデーショ

Visualforceで数値や日付のフォーマットを指定して表示するには?

MOVE-PERCENTAGE(文字列の部分の代入)

csharp 标准の数値书式指定文字列とかカスタム书式とか的ToString(字符串)メソッドなどで,数値のフォーマットを指定して文字列で表现することができます。たまにしか使わないから忘れちゃうんです