如何使用 C# 以编程方式编辑 Power BI Desktop 文档参数或数据源?

Yel*_*yev 4 c# report powerbi

我有一个在 Power BI Desktop 中内置的报告模板,并保存为 .pbix 或 .pbit 文件。该模板使用DirectQuery SQL数据库作为数据源,而服务器地址和数据库名称被提取到参数中。还有一个包含 a 的参数ReportId,该参数在查询中使用。

Power BI 窗口屏幕截图

我还有一个 C# 应用程序,它应该从此模板生成 Power BI Desktop 报告。
如何以编程方式创建具有特定参数的报告?
当您打开 .pbit 模板文件、输入参数并生成 .pbix 文档时,类似 Power BI Desktop 的功能会自行执行。

我没有找到任何适用于 Power BI Desktop 的 SDK \ Interop 库。
我尝试以 ZIP 格式打开文档,但DataModel文件已存档,因此不是格式良好的 XML。
我还尝试将此参数提取到 JSON 文件并将其作为数据源加载,但 Power BI 不支持相对路径。

And*_*lov 5

没有可用于执行此操作的 SDK 或 API。如果将此报表发布到 Power BI Online,则可以使用更新参数更新组中的参数REST API 调用来更改参数值。我相信 Power BI Reporting Server 有类似的 API,但我没有使用它的经验。

您可以尝试在线发布报告并将其保留在那里(不需要与任何人共享)。当您需要带有某些参数值的报告时,请调用上面的API方法更改该值,然后使用导出报告导出组中报告方法下载修改后的.pbix文件。它很丑陋而且不是线程安全的,但可能有用......

您说您查看了DataModel提取的 .pbix 中的文件。我认为参数和M查询都在DataMashup(搜索RootFormulaTextReferencedQueriesFormulaText文本找到它们)。服务器和数据库名称也在那里。您可以相对轻松地修改M查询、现有参数的值或服务器/数据库名称,并尝试重新打包.pbix文件。它可能有效,但看起来极不受支持。

我尝试在Power BI Desktop中使用SSMS连接到报表的SSAS,但我没有找到以这种方式修改参数值的方法。不过,我可以在源查询中看到它们的值(如果参数用作过滤器)。

我正在使用类似的东西,但我不是使用参数,而是将报告嵌入到我的应用程序中并使用过滤器。这样,所有用户都可以访问一份相同的报告,我不需要根据他们的特定需求“定制”.pbix。

恐怕这不能解决您的问题,但我希望它能给您一些可以做什么或不能做什么的想法!