LoginSignup
6
3

PowerAutomate: Power BI データセットのデータを CSV として保存する

Posted at

背景

会社で 表題のことが出来るよーって話があったんですが
参考となる Office Scripts もなかったので、用意しておくか、と思ったというだけ

概要

  1. Power BI に対して DAX Query でデータを取得 as JSON
  2. JSON を Office Scripts で CSV へ変換
  3. あとは保存するだけ

フロー

フローは単純にこんな感じ

image.png

DAX Query でデータの取得

DAX Query は以前は面倒でしたけど、今は Power BI Desktop で DAX Query View を使えば簡単ですね。

image.png

で、上手く動かせる Query を、Power Automate のアクションに貼り付けるだけ

image.png

DAX Query View は、まだプレビュー機能なので、以下設定で有効化

image.png

Office Scripts で、JSON → CSV へ

  • JSON から CSV は以下コードで実現
ConvertJson2Csv

function main(
    workbook: ExcelScript.Workbook,
    rawJson: string
): string {
  let jsonRows: JSON[] = JSON.parse(rawJson);

  // ヘッダー行を作成
  let header = Object.keys(jsonRows[0]).join(", ");

  // データ行を作成
  let rows = jsonRows.map(obj => Object.values(obj).join(", "));

  // CSVデータを作成
  let csv = [header, ...rows].join("\r\n");

  // console.log(csv)

  return csv;
}
  • あとは、JSONを渡して変換してやるだけ

image.png

CSV 保存

特に苦も無く保存するだけですね

image.png

あとがき

肝となるところは、以下2点でしたが・・

  • DAX Query
  • Office Scripts での変換

前者は Power BI の Dax Query View が、今どきのサンプル生成がいい感じ
後者も、サクッと終わった

ので・・拍子抜けするほど簡単ですね。
技術の進化は恐ろしい :laughing:

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3