web-dev-qa-db-ja.com

相対パスからPower BIにデータを読み込む

私は外部データファイルを読み込むための解決策を見つけようとしていますが、相対パスからです。そのため、他の誰かが私のPBIXを開いても、彼/彼女のコンピューターで動作します。

どうもありがとう。

6

相対パスは現在Power BIでサポートされている*ではありません*。

power bi does not support relative paths


痛みを軽減するために、ファイルが配置されているパスを含む変数を作成し、その変数を使用して各テーブルのパスを決定できます。そうすれば、1つの場所(その変数)を変更するだけで、すべてのテーブルが自動的に新しい場所を指すようになります。

空のクエリを作成し、名前を付け(例:dataFolderPath)、ファイルのあるパスを入力します(例:C:\Users\caio-proiete\Desktop

create Blank Query

type path for the files

変数を作成したら、Advanced Editorの各テーブルを編集し、変数をファイルの名前と連結します。

例えば"C:\Users\caio-proiete\Desktop\data.xlsx"の代わりにdataFolderPath & "\data.xlsx"に変更します

enter image description here


また、実装されたときに通知されるように、この機能リクエストに投票/監視することもできます。

3
Caio Proiete

これはまだ可能ではないと思います。

このアイデア のサポートを追加してください。MicrosoftPower BIチームがこれを新機能として追加する可能性が高くなります。

1
Alexis Olson

「パラメータ」機能も使用できます。 1.「PathExcelFiles」のような新しいパラメーターを作成します Parameter_ScreenShot

  1. 「ソース」エントリを編集 SourceEntry_ScreenShot

できました!

0
Wil van Dorp

相対パスを使用する可能性がないという事実に耐えられなかったが、最後に私はしなければならなかった...

だから私は、まともな許容できる回避策を見つけようとしました。 Python-Scriptを使用すると、少なくともユーザーの%HOME%ディレクトリにアクセスできます。

let
    PySource = Python.Execute("from pathlib import Path#(lf)import pandas as pd#(lf)dataset = pd.DataFrame([[str(Path.home())]], columns = [1])"),
    homeDir = Text.Trim(Lines.ToText(PySource{[Name="dataset"]}[Value][1])),
    ...

R-Scriptでも同じことが可能ですが、できませんでした。

「Power」クエリ内に%HOME%ディレクトリを取得するためのより良いソリューションを知っている人はいますか?よろしくお願いします。

次に、作業ディレクトリ内に2つのスクリプトを作成しましたinstall.bat:

@ECHO OFF
if exist "%HOME%\.pbiTemplatePath\filepath.txt" GOTO :ERROR

#This is are the key commands
mkdir "%HOME%\.pbiTemplatePath"
echo|set /p="%cd%" > "%HOME%\.pbiTemplatePath\filepath.txt"

GOTO :END

#Just a little message box
:ERROR
SET msgboxTitle=There is already another working directory installed.
SET /p msgboxBody=<"%HOME%\.pbiTemplatePath\filepath.txt"
SET tmpmsgbox=%temp%\~tmpmsgbox.vbs
IF EXIST "%tmpmsgbox%" DEL /F /Q "%tmpmsgbox%"
ECHO msgbox "%msgboxBody%",0,"%msgboxTitle%">"%tmpmsgbox%"
WSCRIPT "%tmpmsgbox%"
:END

およびninstall_all.bat:

@ECHO OFF
if exist "%HOME%\.pbiTemplatePath\filepath.txt" RMDIR /S /Q "%HOME%\.pbiTemplatePath\"

「Power」BIでこれを行いました。

let
    PySource = Python.Execute("from pathlib import Path#(lf)import pandas as pd#(lf)dataset = pd.DataFrame([[str(Path.home())]], columns = [1])"),
    homeDir = Text.Trim(Lines.ToText(PySource{[Name="dataset"]}[Value][1])),
    workingDirFile = Text.Combine({homeDir, ".PbiTemplatePath\filepath.txt"} , "\"),
    workingDir = Text.Trim(Lines.ToText(Csv.Document(File.Contents(workingDirFile),[Delimiter=";", Columns=1, QuoteStyle=QuoteStyle.None])[Column1])),
    ...

ここで、私のgit-repository(「Power」BI-template-fileと、データのロード元のテンプレートおよびinstall/uninstall-scriptsを示すいくつかのconfig-filesを含む)の場合。インストールは1回実行する必要があり、パスをコピーして貼り付ける必要はありません。

改善の提案があれば嬉しく思います。それはゴッサムに値する解決策ではありません...ゴッサムはより良いものに値します。

0
Lukas