导出报表到文件
请先确保已创建服务主体
可参考 创建服务主体
获取页面信息
需要先获取报表的页面ID,在门户中访问报表时,也可以在网址栏查看页面的ID,ID是以ReportSection开头的字符串
这里我们可以直接请求API, Reports - Get Pages In Group - REST API (Power BI Power BI REST APIs) | Microsoft Learn
在请求之前我们需要先获取token,在获取token时需要注意,国际版和国内版请求的终结点是有差异的,具体的可参见中国区 Azure 开发人员指南 | Microsoft Learn
本次用到如下
uris = {
"global": {
"login_uri": "https://login.windows.net",
"resource_uri": "https://analysis.windows.net/powerbi/api",
"api_uri": "https://api.powerbi.com"
},
"china": {
"login_uri": "https://login.chinacloudapi.cn",
"resource_uri": "https://analysis.chinacloudapi.cn/powerbi/api",
"api_uri": "https://api.powerbi.cn"
}
}
request请求获取token即可,这里要用到上面创建的服务主体的信息
有了token,就可以请求API来获取页面信息,返回结果如下所示
导出到文件
这一步是我踩坑最多的一步,一开始以为只要请求一个API,即可,后面发现需要请求3个。。。这里直接引用Power BI Devcamp PPT中的流程
所以这里我们要先请求Reports - Export To File In Group - REST API (Power BI Power BI REST APIs) | Microsoft Learn
因为报表中设置了RLS,所以body中必须传递角色信息,另外因为我只想导出某一页,pages属性也必填,如果要导出整个报表,可以不设置该属性
拿到这个id再去请求第二个来获取导出文件的状态,这里要注意,一定要等到请求状态为成功为止,Reports - Get Export To File Status In Group - REST API (Power BI Power BI REST APIs) | Microsoft Learn
最后,终于可以来获取文件的信息了,Reports - Get File Of Export To File In Group - REST API (Power BI Power BI REST APIs) | Microsoft Learn
可以看下效果,确实是我们报表页面