【GAS】getDisplayValues()関数:スプレッドシートの表示形式を保持したデータ取得

【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でスプレッドシートのデータを扱う上で非常に強力なツールです。表示形式を保持したままデータを取得できるため、様々な場面で活用できます。ぜひ、この関数を使いこなして、より効率的なスプレッドシート操作を実現してください。