将当前 PowerBI 屏幕导出到 pptx

Export current PowerBI screen to pptx

我有一个显示嵌入式 PowerBI 报告的网络应用程序。最近,在这个 link 的帮助下,我添加了将 PowerBI 报告导出到 PowerPoint 的功能。一切正常,除了导出没有考虑用户正在查看的细节级别这一事实。 (例如,他打开了报告,但更改了选定的选项卡并从默认显示的内容深入两层)。

我认为这可以通过书签信息来解决,更多详细信息here,我已经设法获取了书签信息,但我找不到任何关于如何导出报告的信息此书签信息的帐户。

你们有任何 link 或提示如何实现吗?谢谢!

LE 代码:

服务器代码(几种方法及其结果):

  1. 通过提供 DefaultBookmark,我得到一个空的 PowerPoint 文件。

         var powerBIReportExportConfiguration = new PowerBIReportExportConfiguration
         {
             Settings = new ExportReportSettings
             {
                 Locale = "en-us",
             },
    
             Identities = new[] { ei },
             DefaultBookmark = new PageBookmark(name: bookmarkName, state: reportState),
         };
    
  1. 通过为页面提供基于 bookmarkState 的 PageBookmark,我收到以下错误:{"error":{"code":"InvalidRequest","message":"Export report with page names which报告中不存在不受支持"}}

         var powerBIReportExportConfiguration = new PowerBIReportExportConfiguration
         {
             Settings = new ExportReportSettings
             {
                 Locale = "en-us",
             },
    
             Identities = new[] { ei },
             Pages = new[] { new ExportReportPage(bookmark: new PageBookmark(state: bookmarkState)) },
         };
    
  2. 通过基于 bookmarkName 为页面提供页面书签,我收到以下错误:{"error":{"code":"InvalidRequest","message":"Export report with page names which报告中不存在不受支持"}}。与第二种方法相同。

         var powerBIReportExportConfiguration = new PowerBIReportExportConfiguration
         {
             Settings = new ExportReportSettings
             {
                 Locale = "en-us",
             },
    
             Identities = new[] { ei },
             Pages = new[] { new ExportReportPage(bookmark: new PageBookmark(name: bookmarkName)) },
         };
    
  3. 如果我在 ExportReportPage 书签中同时提供名称和书签,则会出现相同的错误请求错误。

客户代码:

async reportBookmark(): Promise<models.IReportBookmark> {
return this.report.bookmarksManager
  .capture()
  .then(value => {
    return value;
  })
  .catch(() => {
    return null;
  });
}

Export To File In Group accepts pageBookmark to be applied on specific page and defaultBookmark, to be applied on all pages which don't have a specific bookmark. See the Bookmarks 您提供的 link 部分:

You can use the exportToFile API to programmatically export a report in a specific state, after applying filters to it. This is done using Bookmarks capabilities. To export a report using bookmarks, use the bookmarks JavaScript API.

For example, you can use the bookmark's capturedBookmark.state method to capture the changes a specific user made to a report, and then export it in its current state.

Personal bookmarks and persistent filters are not supported.

所以你不应该在加载时应用书签,而是在调用导出时捕获当前状态并将其作为页面书签传递API。

经过一段时间的休息和一些帮助后,我意识到问题出在我的网络应用程序和我的 api 之间。我在请求中通过 QueryParameters 发送 bookmarkState,一些字符被更改或删除。通过 body 发送它效果很好。 小提一下,导出配置最终是这样的:

 var powerBIReportExportConfiguration = new PowerBIReportExportConfiguration
 {
     Settings = new ExportReportSettings
     {
         Locale = "en-us",
     },

     Identities = new[] { ei },
     DefaultBookmark = new PageBookmark(state: reportState),
 };