如何在嵌入 angular 或使用嵌入式 URL REST API 后从嵌入式 Power BI reports/visuals 读取数据点值详细信息?

How to read data point value details from embedded Power BI reports/visuals after embedding in angular or using embedded URL REST API?

在本机应用程序的 PBI 嵌入中,如何使用嵌入的 url 或任何其他方式从 chart/report 读取数据。 例如,如何读取 PBI card 中的整数值。 还有如何在 angular 中或使用 REST API 读取 report/chart 的列、行和图例数据的值。

目前我们可以在 angular 中嵌入整个报告,并且 PBI REST APIs 可用于获取数据集 ID、报告 ID、嵌入 URL。但是我怎样才能获取数据(JSON、XML 或任何格式)而不是嵌入 URL,这样我就可以为卡片、图表、报告自定义我自己的 UI 设计(如果我有数据值)嵌入 angular

您可以通过调用视觉对象的 exportData 方法来使用 Export Data API,例如像这样:

// Exports visual data
visual.exportData(models.ExportDataType.Summarized, 100)
  .then(function (data) {
    Log.log(data);
  })
  .catch(function (errors) {
    Log.log(errors);
  });

请注意,有一些限制可能会阻止您使用此方法:

  • 如果数据源是 Analysis Services 实时连接并且版本早于 2016 并且模型中的表没有唯一键,则使用底层数据导出将不起作用。

  • 如果为正在导出的可视化启用显示没有数据的项目选项,则使用基础数据导出将不起作用。

  • 使用 DirectQuery 时,可以导出的最大数据量为 16 MB。这可能会导致导出的行数少于最大行数,尤其是在列数多、数据难以压缩以及其他因素导致文件大小增加和导出行数减少的情况下。

  • Power BI 仅支持导出使用基本聚合的视觉对象。导出不适用于使用模型或报告度量的视觉对象。

  • 目前不支持自定义视觉对象和 R 视觉对象。

  • Power BI 管理员可以禁用数据导出。

  • 不支持来自同一会话的并发导出数据请求。多个请求应该运行同步。

我不知道你的具体用例是什么,但你也可以获得(部分)视觉数据,如果你处理 dataSelected event (see dataPoints parameter). There is a demo here 曾经工作过,但现在看起来坏了.不管怎样,它可能会再次起作用。

我个人的看法是数据导出不应该从报表中进行,而应该直接连接到数据源。您可以使用 Get Datasources In Group API 找出数据源(如果您不知道它 - 毕竟这是您的报告)并从那里获取数据。