背景
会社で 表題のことが出来るよーって話があったんですが
参考となる Office Scripts もなかったので、用意しておくか、と思ったというだけ
概要
- Power BI に対して DAX Query でデータを取得 as JSON
- JSON を Office Scripts で CSV へ変換
- あとは保存するだけ
フロー
フローは単純にこんな感じ
DAX Query でデータの取得
DAX Query は以前は面倒でしたけど、今は Power BI Desktop で DAX Query View を使えば簡単ですね。
で、上手く動かせる Query を、Power Automate のアクションに貼り付けるだけ
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を渡して変換してやるだけ
CSV 保存
特に苦も無く保存するだけですね
あとがき
肝となるところは、以下2点でしたが・・
- DAX Query
- Office Scripts での変換
前者は Power BI の Dax Query View が、今どきのサンプル生成がいい感じ
後者も、サクッと終わった
ので・・拍子抜けするほど簡単ですね。
技術の進化は恐ろしい