从相对路径将数据加载到Power BI中

时间:2018-10-18 16:12:09

标签: powerbi

我正试图找到一种解决方案,但可以从相对路径加载外部数据文件,因此当其他人打开我的PBIX时,它仍可以在他/她的计算机上工作。

非常感谢。

4 个答案:

答案 0 :(得分:3)

Power BI当前支持相对路径* *。

power bi does not support relative paths


为减轻痛苦,您可以创建一个包含文件所在路径的变量,然后使用该变量确定每个表的路径。这样,您只需更改一个位置(该变量),所有表格将自动指向新位置。

创建一个空白查询,为其命名(例如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


您还可以投票/观看此功能请求,以在实施该功能时得到通知:

答案 1 :(得分:1)

我认为这还不可能。

请添加对this idea的支持,以便Microsoft Power BI团队更有可能将其添加为新功能。

答案 2 :(得分:0)

您也可以使用“参数”功能。 1.创建一个新参数,例如“ PathExcelFiles” Parameter_ScreenShot

  1. 编辑“源”条目 SourceEntry_ScreenShot

完成!

答案 3 :(得分:0)

我无法忍受没有可能使用相对路径的事实,但是最后我不得不...

所以我试图找到一种可以接受的解决方法。 使用Python脚本,至少可以访问用户%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%目录的更好解决方案吗?我很高兴有一个。

然后,我在工作目录 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

uninstall_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存储库(包含一个“ Power” BI模板文件和一些配置文件,这些文件说明了从中加载数据的模板以及安装/卸载脚本)。安装必须执行一次,并且无需复制和粘贴任何路径。

任何改进的建议我都会很高兴。这不是哥谭应该得到的解决方案……哥谭应该得到更好的解决方案。