1

XML フィードからデータを取得するシートを作成しました。特定の列の内容に基づいて、その 1 つのシートを別の複数のシートに分割するスクリプトを作成しました。これはすべてうまくいきます。

私の問題は、XML からデータを取得した後、それを新しいシートに分割する前に、列を追加したり、書式設定を行ったりすることです。次に、(appendRow() を使用して) 行を新しいシートにコピーすると、フォーマットと数式を失います。

私が現在使用しているコードは次のとおりです。

var datarange = template_sheet.getDataRange();

for (var i in dataRange) {
   workbook.getSheetByName(dataRange[i][6]).appendRow(dataRange[i]);

}

私が探していることを行う方法はありますか?または、最初に元のデータを別々のシートに分割してから、各シートをループして書式設定/数式を実行する必要がありますか?

4

2 に答える 2

4

Range オブジェクトのメソッドcopyTo(range, optAdvancedArgs)を使用する必要があります。

var datarange = template_sheet.getDataRange();
for (var i in datarange)
  datarange[i].copyTo(
    workbook.getSheetByName(dataRange[i][6]).getRange(
      workbook.getSheetByName(dataRange[i][6]).getMaxRows()+1, 1));

トリックを行う必要があります

より読みやすく:

var datarange = template_sheet.getDataRange();
for (var i in datarange) {
  var sheet = workbook.getSheetByName(dataRange[i][6].getValue());
  datarange[i].copyTo(sheet.getRange(sheet.getMaxRows()+1, 1));
}
于 2012-09-14T19:53:55.950 に答える