【GAS】getDisplayValues()関数:スプレッドシートの表示形式を保持したデータ取得
Google Apps Script(GAS)でスプレッドシートを操作する際、getDisplayValues()
関数は非常に重要な役割を果たします。この関数は、スプレッドシートに表示されている形式(日付、通貨、パーセンテージなど)を保持したまま、セルの値を取得するために使用されます。
getDisplayValues()関数の詳細
getDisplayValues()
関数は、Range
オブジェクトのメソッドです。つまり、スプレッドシート内の特定の範囲を指定し、その範囲に対してこの関数を呼び出すことで、表示されている値を二次元配列として取得できます。
構文
range.getDisplayValues()
range
:取得したい範囲を指定するRange
オブジェクト。- 戻り値:指定された範囲の表示値を格納した二次元配列。
実用的なコード例
以下に、getDisplayValues()
関数の具体的な使用例を示します。
function getDisplayedValues() {
// スプレッドシートを取得
const ss = SpreadsheetApp.getActiveSpreadsheet();
// シートを取得(ここではSheet1を対象とする)
const sheet = ss.getSheetByName("Sheet1");
// 範囲を指定(A1からB5の範囲)
const range = sheet.getRange("A1:B5");
// 表示形式を保持した値を取得
const displayedValues = range.getDisplayValues();
// 取得した値をログに出力
Logger.log(displayedValues);
}
このコードは、アクティブなスプレッドシートの「Sheet1」という名前のシートから、A1からB5の範囲のデータを取得し、その表示形式を保持した値をログに出力します。
応用例や活用シーン
getDisplayValues()
関数は、以下のような場合に特に役立ちます。
- 請求書やレポートの自動生成:表示形式を保持した金額や日付をそのまま利用できる。
- データのエクスポート:スプレッドシートの表示をそのままCSVやPDFに出力したい場合。
- 条件付き書式が適用されたデータの取得:色やフォントなどの情報は取得できませんが、表示されている値は正確に取得できる。
特定の条件で書式設定された値を処理する例
function processFormattedData() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName("FormattedSheet");
const range = sheet.getDataRange();
const displayedValues = range.getDisplayValues();
// 各セルの値を処理
for (let i = 0; i < displayedValues.length; i++) {
for (let j = 0; j < displayedValues[i].length; j++) {
// ここで各セルの値を加工したり、別の処理に利用したりする
Logger.log("Row: " + (i + 1) + ", Column: " + (j + 1) + ", Value: " + displayedValues[i][j]);
}
}
}
この例では、FormattedSheet
というシートの全データを取得し、各セルの値をログに出力しています。この値を基に、さらに複雑な処理を行うことも可能です。
まとめ
getDisplayValues()
関数は、GASでスプレッドシートのデータを扱う上で非常に強力なツールです。表示形式を保持したままデータを取得できるため、様々な場面で活用できます。ぜひ、この関数を使いこなして、より効率的なスプレッドシート操作を実現してください。