シートのセル値を配列に入れるのは非常に簡単です。次に、必要な個々のセルを編集できます(配列内)。次に、同じ配列をシートに書き戻します。以下のように。
var adSpendExprtSheet = ss.getSheetByName("Ad Spend Export");
var adSpendExprtSheetData = adSpendExprtSheet.getRange(1 ,1, adSpendExprtSheet.getLastRow(), adSpendExprtSheet.getLastColumn()).getValues();
次に、保存した配列の値を変更できます。
adSpendExprtSheetData[0][0] = "Changing first cell in array"
その後、この同じ配列を使用できます。更新しました。実際のシートに書き込まれるようにパスバックします。
adSpendExprtSheet.getRange(1 ,1, adSpendExprtSheet.getLastRow(), adSpendExprtSheet.getLastColumn()).setValues(adSpendExprtSheetData);
色を設定するためにこれを行うことができますか?
今のところ、個々のセルの範囲を取得する必要があります。次に、setBackground( "#00ff00");を使用します。
すべてのカラー値を配列に入れることはできますか?HEX値でセルの色を変更します。次に、その配列をシートに書き戻しますか?
スクリプトを最適化する必要があります。5分かかる代わりに。数秒で完了します。シートの読み取りと書き込みを数回行うだけ。数百ではありません。
何か助けていただければ幸いです!
あなたのケースでは、getBackgrounds()
そしてを使用してsetBackgrounds(color)
どうですか?この場合、あなたは次のようにそれを使用することができますgetValues()
し、setValues()
あなたの質問に。スクリプトを変更すると以下のようになります。
var ss = SpreadsheetApp.getActiveSpreadsheet();
var adSpendExprtSheet = ss.getSheetByName("Ad Spend Export");
var range = adSpendExprtSheet.getRange(1 ,1, adSpendExprtSheet.getLastRow(), adSpendExprtSheet.getLastColumn());
var backgrounds = range.getBackgrounds();
backgrounds[0][0] = "#FF0000"; // This is red color as a sample.
range.setBackgrounds(backgrounds);
getBackgrounds()
は2次元配列です。また、を使用してセルに配置できますsetBackgrounds()
。これにより、私は、プロセスコストがよりも減らすことができるようになると思いますgetBackground
とsetBackground
。範囲に1つの色を設定する場合は、次のスクリプトを使用することもできます。
var ss = SpreadsheetApp.getActiveSpreadsheet();
var adSpendExprtSheet = ss.getSheetByName("Ad Spend Export");
var range = adSpendExprtSheet.getRange(1 ,1, adSpendExprtSheet.getLastRow(), adSpendExprtSheet.getLastColumn());
range.setBackground("#FF0000");
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加