Power Queryで、読み込みファイルに(相対パスではなく)絶対パスを要求する場面があるが、Power Query M言語では環境変数にアクセスできないように見える。 なので、Pythonを利用して環境変数をとってみる。 まず、何とかして、以下を実行できるようにしてみる。 https://learn.microsoft.com/ja-jp/power-bi/connect-data/desktop-python-in-query-editor 私の環境では、pip install pandasだけでは動かなくて、pip install matplotlibもしてみた。 そのあと、PowerQueryで適当な名前のクエリを作り以下の内容にしてみた。 let ソース =#table({"a"},{{0}}), PyExe = Python.Execute("dataset[""name""]=os.environ['USERPROFILE']",[dataset=ソース]), ExpandTable = Table.ExpandTableColumn(PyExe, "Value", {"name"}, {"name.1"}), ExpandValue =ExpandTable{0}[name.1] in ExpandValue 解説 Python.Executeでは、テーブルの入力が必要らしいので、ソースに、ダミーのテーブル(列名がaで、中身が0の1行レコードのテーブル)を入れる。 ダミーのテーブルに対して、name列を追加して、その内容を環境変数USERPROFILEの展開後のものとした。 PythonのテーブルがValueに入るため、Valueのテーブル内にアクセスできるように展開した。 展開後のテーブルの1行目、name.1列の内容をExpandValueとし、出力結果をExpandValueとした。 洗練されてはおらずいろいろとゴミがあるが、 これで、このクエリの結果がUSERPROFILEの展開後の結果となった。
2023年3月25日土曜日
Power BIのPower Queryで環境変数を取得する方法
登録:
コメントの投稿 (Atom)
1 件のコメント:
PyExe = Python.Execute("for a in os.environ:#(lf) dataset[a]=os.environ[a]",[dataset=ソース]),
で、全環境変数をとってみても、pbixファイルの格納場所がみつからない。。。
コメントを投稿