将excel查询复制到power bi

Posted

技术标签:

【中文标题】将excel查询复制到power bi【英文标题】:Copying excel query to power bi 【发布时间】:2020-03-09 14:25:35 【问题描述】:

我正在尝试将 excel 查询复制到 PowerBI 查询中。 在excel中我有

let
    Source = Csv.Document(File.Contents(Excel.CurrentWorkbook()[Name="Request"][Content]2[Path]),null,0, 55, 62, 134, 145, 386, 398, 410,null,1200),
    #"Appended Query" = if Date.Month(Excel.CurrentWorkbook()[Name="Request"][Content]5[start])=Date.Month(Excel.CurrentWorkbook()[Name="CurrentDate"][Content]0[CurrentDate]) then Source else Table.Combine(Source, Csv.Document(File.Contents(Excel.CurrentWorkbook()[Name="Request"][Content]3[Path]),null,0, 55, 62, 134, 145, 386, 398, 410,null,1200)), 

在 excel 中这一切正常,但在 Power BI 中出现错误。 (在查询中显示数据源的excel中显示数据源:X:...... .txt)我尝试将文件路径复制到代码中,但由于“日期”部分,我仍然遇到错误。

Expression.Error:我们找不到名为“请求”的 Excel 表。 细节: 请求。

【问题讨论】:

用文件路径改变Excel.CurrentWorkbook()[Name="Request"]Excel.CurrentWorkbook()[Name="Request"][Content]5[start]会报错:Expression.Error: The Date value must contain the Date component. 【参考方案1】:

Excel.CurrentWorkbook() 部分表示它指的是 Excel 文件中的表格。如果你使用的是 Power BI,则没有当前工作簿。如果你想连接到 Excel 文件中的数据表,那么它看起来更像

Excel.Workbook(
    File.Contents("\filepath\filname.xlsx"),
    null, true)[Item="TableName",Kind="Table"][Data]

我建议使用 GUI 连接到源(主页 > 新源 > Excel)。

【讨论】:

问题是该文件不是一个 excel 文件,而是一个普通的 .txt 文件(我无法更改它),当我使用 GUI 连接到它时,列都搞砸了。给我 2 列而不是 8 列我使用的分隔符。出于某种原因,它在 excel 中运行良好。 好的。这是一个单独的问题。 我的问题是我如何能够成功地更改具有实际源路径的“Excel.CurrentWorkbook 部分而不会丢失代码中的参数。【参考方案2】:

如何加载名为.txt 的 Excel 工作表

问题是该文件不是excel文件,而是普通的.txt(我无法更改)

这仍然有效。 (扩展名实际上没有任何意义,或者改变文件的内容。它就像改变文件名一样。)

let  
    txt_filepath = "C:\Excel\worksheet.txt",
    worksheet_bytes = File.Contents( txt_filepath ),   
    Source = Excel.Workbook(worksheet_bytes, true),    
    FinalTable = Source[Item="Sheet1",Kind="Sheet"][Data]
in
    FinalTable

WorkBook 参数(诗句函数)

"Excel.CurrentWorkbook 部分具有实际源路径,而不会在代码中丢失其参数

您可以使用Report/Worksheet Parameters。更改值很容易,无需接触 Power Query 本身。

你甚至可以让参数自动填充到文件中。

let
    /*
    this generates files to suggest for report parameter
    */
    Source = Folder_FilesFormatted( Folder.Files( #"Base Path Param" ) ),
    Path_Listing = List.Sort( Source[Full Path] )
in
    Path_Listing

【讨论】:

以上是关于将excel查询复制到power bi的主要内容,如果未能解决你的问题,请参考以下文章

Word文档如何自动更新Power BI数据和图表?

power bi怎么导入到excel

将文本文件中的多个查询粘贴到 Power BI Desktop

如何将网页上的内容复制到excel表格

将查询从 Access 复制到 Excel

Power BI 查询 - 将分隔符之间的文本提取到新列