PowerBI简介
PowerBI是微软新一代的交互式报表工具,把相关的静态数据转换为酷炫的可视化的,能够根据filter条件,对数据执行动态筛选,从不同的角度和粒度上分析数据。PowerBI主要由两部分组成:PowerBI Desktop和 PowerBI Service,前者供报表开发者使用,用于创建数据模型和报表UI,后者是管理报表和用户权限,以及查看报表(Dashboard)的网页平台(Web Portal)。在开始PowerBI制作报表之前,请先下载 PowerBI Desktop桌面开发工具,并注册Power BI service账户,在注册Service账号之后,开发者可以一键发布(Publish)到云端,用户只需要在浏览器中打开相应的URL链接,在权限允许的范围内查看报表数据。
PowerBI-Javascript
在很多种情况下,我们需要把报表嵌入网页或者APP中,和公司现有的办公应用集成在一起并且互相交互,这时候我们就可以通过SDK或者RESTAPI的方式在App里调用操作报表了。
点击此处跳转相关文章
一、嵌入基础
有两种不同的Token可以嵌入
1,用户拥有数据
如果说在开发程序中,用户有Power BI账户,程序登录会使用用户的帐号,登录后会提供访问所需的Token,用其Token可以访问到用户的数据并嵌入用户的报表。
TokenType设置为AAD
2,程序拥有数据
如果说在开发一个嵌入自己报表的程序,自己需要创建Power BI账户,然后将报表添加到账户里,调用PowerBI API为报表生成Token,使用Token获取相关信息,然后做嵌入。
TokenType设置为Embed
Embed Token文档
二、嵌入配置详情(NEW Panes)
使用powerbi.embed(element, embedConfiguration)即可实例化报表
1,Settings
Panes
报表中所有的窗格都可以由一个对象panes来控制,比如书签,过滤器等等
对象中包含:bookmarks、syncSlicers、pageNavigation、fields、filters、visualizations。
Bars
提供powerBI的条形工具区域(action bar),可以选择显示与否
Filter Pane
可控制筛选器的显示与否
Page Navigation
可以控制页面导航的显示与否
Locale Settings
可以控制语言以及日期的格式
Apply Bookmark on load
可以根据报表设置的书签以及书签状态来应用
Transparent Background
可以设置报表的背景色,默认是白色带灰边,可设置为透明
2,Options
Default Page
默认报表会加载上次保存的活动页面,可以通过指定页面名称来替换。
Pre-applied Filters
默认加载报表过滤器,可设置其他过滤器
Themes and High Contrast Mode
报表会加载默认主题,也可以设置高对比度模式
Opening in Edit mode
报表默认只读,但是提供了可以设置为编辑模式的API
分别会有以下权限值
Read:仅允许查看报告
ReadWrite:允许查看,编辑和保存报告。
Copy:允许使用“另存为”保存报告的副本。
Create:允许创建新报告。
All:允许所有内容。
3,Switching between View and Edit mode
提供切换只读和编辑模式的API,可以自由切换
三、Create/Edit Report In Embed View
可以在View中创建和编辑报表
提供了:保存报表功能、以及检查报表是否保存功能
四、Service Configuration
从2.x版本开始,Power BI将不会在页面加载时自动在应用程序的DOM中搜索Power BI嵌入的组件。如果您需要这种行为,则必须为此配置服务。
提供了两种方式来模拟
1,在DOM准备就绪之前执行
2,在DOM准备就绪之后执行
init之后就可以通过唯一的ID或名称查找嵌入实例
也提供了重置API,可以将已经嵌入的报表重置为初始状态,可防止该服务保留未引用的报表存在于DOM中(清除报表缓存)
五、Phased Embedding
分阶段嵌入,提供了可以分阶段来做嵌入的API,过程中可以做一些其他的操作
六、Transparent Background
提供了使用背景类型的API,可以将报表默认背景透明化,在程序中设置容器背景。
七、Troubleshooting and debugging of embedded parts
故障排除和调试
可以从error事件中获取 IError object
在开发应用程序或在生产应用程序上时,当加载或渲染过程中发生错误时,将触发error事件,获取错误日志。
八、Dynamic Binding
提供动态绑定,可以动态的将报表嵌入其中
需要将datasetBinding属性添加到embed配置对象中
根据不同的数据集ID做动态嵌入
九、Preload
提供预加载API,需要提供嵌入式实体的类型,以及PowerBI Embedded的基本URL。如果要获得最佳性能,不建议使用预加载
十、Bootstrap For Better Performance
提供Bootstrap API,powerbi.bootstrap是版本2.9.0中引入的一种方法,可帮助开发人员更快地嵌入Power BI实例并获得更好的性能。接收方法同powerbi.embed(…)
使用powerbi.bootstrap你可以先开始嵌入,然后再提供所有必需的参数。
配置参数:
1,type (必填):要嵌入的实体的类型:“报告”,“仪表板”,“平铺”,“ qna”,“可视”。
2,hostname:如果还没有embedURL,则可以分配hostname。hostname是嵌入URL的域名。
3,embedUrl:同powerbi.embed的URL。
4,settings:将报表嵌入移动版式或提供语言环境,需在初始设置中包含这些参数。
局限性:
1,类型无法更改,如果使用此方法,则只能将报告嵌入同一HTML元素中。
2,无法更改布局。
3,无法更改语言环境。
十一、Accessibility (NEW)
提供了一些辅助用的API
1,可以设置标题属性
2,设置标签索引
3,调出键盘的快捷键
4,调整高对比度模式
十二、Correlation ID (NEW)
获取相关ID,getCorrelationId可以获取当前Power BI embed的相关ID。
该方法可以将应用程序的session ID与Power BI embed session ID关联起来,将其提供给Power BI support 我们获得其他更多的调试信息
报表加载后调用即可
十三、Update Settings
提供更新settings的API,report.updateSettings(newSettings)即可更新
十四、Update Embed Token
提供更新Token的API,如果Token过期,无需重新加载嵌入式报表,可使用report.setAccessToken(“eyJ0eXAiOiJKV1Qi…00YU”)更新Token
十五、Page Navigation
提供操控页面显示的API
十六、Filters
提供设置Filters的API,可以动态的更改Filters。同时也可自己构造Filters。
同时提供了控制Filters的隐藏,锁定和重命名功能
十七、Slicers
提供Slicers的API,Slicers是另一种筛选方法。 用于限制在其他报表可视化效果中显示的部分数据集。(比如数值范围,日期,时间)
也可以自定义Slicers
但是Slicers不支持输入字段和下钻
十八、Print a Report
提供report.print()方法,可以调用到浏览器的打印窗口来打印报表
十九、Reload a Report
提供重新加载报表API,同时也可以catch到错误信息。
二十、Refresh a Report
提供刷新报表的API
二十一、Open in Fullscreen
提供调用全屏显示的API
二十二、Commands
Power BI visuals有两个菜单:Context和Option。
提供了指令来扩展这些菜单,在setting中定义这些扩展即可个性化菜单
提供了控制菜单项位置的API
二十三、Custom Layout
提供自定义布局API,使用自定义布局可以嵌入具有与原始报表不同布局的报表。
二十四、Embed For Mobile
可以将报表嵌入Mobile中显示。
提供了两种专用于移动设备的布局类型:
1,MobilePortrait-针对视图进行了优化(这是在Power BI桌面上创建的移动布局)
2,MobileLandscape-针对景观视图进行了优化。类似常规报表布局。
- 布局将由此属性确定,而与设备的实际方向无关
提供滑动事件可以监听滑动事件并触发自定义行为(swipeStart和swipeEnd)
提供了自定义布局API
二十五、Bookmarks
提供书签功能相关API
1,获取书签列表
2,按名称应用书签
3,捕获已应用书签的事件
4,显示/隐藏书签导航窗格
5,进入/退出书签演示模式
6,捕获当前视图并将其作为书签对象,然后将其重新应用于当前会话
二十六、Export Data
提供数据导出API,可以导出报表数据到.csv,导出可指定行数
局限性和注意事项:
1,使用API可以导出到.csv的最大行数为30,000。
2,如果数据源是Analysis Services活动连接并且版本早于2016,并且模型中的表没有唯一键,则使用基础数据导出将不起作用。
3,如果为导出的可视化启用了“显示无数据的项目”选项,则使用基础数据导出将不起作用。
4,如果您对可视化应用了过滤器,则导出的数据将作为过滤器导出。
5,使用DirectQuery时,可以导出的最大数据量为16 MB。这可能会导致导出的行数少于最大行数,尤其是在有许多列,难以压缩的数据以及其他增加文件大小并减少导出的行数的因素中。
6,Power BI仅支持使用基本聚合的视觉效果中的导出。导出不适用于使用模型或报告度量的视觉效果。
7,当前不支持自定义视觉效果和R视觉效果。
8,Power BI管理员可以禁用数据导出。
9,不支持来自同一会话的并发导出数据请求,即多个请求应同步运行。
二十七、Visual header visibility
提供控制header的可见性API(编辑模式下除外,只能隐藏整个,无法精细化隐藏)
二十八、Overriding Error Experience
提供可以替换报表本身的错误提示框的API,自定义错误信息展示
二十九、Apply Report Themes
提供操作报表主题API
1,加载主题(加载自定义主题时用到)
2,加载后更换主题(不重新加载报表)
3,重置为默认主题
4,在新建报表应用主题(应用自定义主题)
注意:使用applyAppme API,将使用新的JSON文件完全覆盖实际主题,而不会扩展实际主题的配置。
三十、Page Operations (NEW)
提供页面操作相关的API
1,添加页面
2,删除页面
三十一、Persistent Filters (NEW)
提供筛选持久化相关API
1,重置持久过滤器
2,保存持久性过滤器
3,应用持久性过滤器
三十二、Embed Single Visual
提供可以给单个报表嵌入视觉效果的API。
三十三、Get Visuals in a page
提供获取特定页面中的视觉效果列表的API。
三十四、Clone Visual
提供了克隆视觉API将特定视觉复制到活动页面中。
三十五、Sort Visual by (NEW)
提供控制Visual排序API,可按照visual的一个数据字段对其进行排序
可以按单个visual的一个数据字段对其进行排序,并控制排序的方向。可以在visual的选项菜单中的“sort by”菜单命令下找到visual可按其排序的数据字段。
三十六、Handling Events
在嵌入式组件上执行的命令被执行并且操作完成之后,嵌入式组件将发出事件。这些命令可以通过SDK以编程方式发送,也可以从与报表直接交互的用户处发送。
例如,用户可以通过使用内置页面导航并单击按钮来手动更改页面,或者可以通过发送正确的postMessage来以编程方式更改页面。在这两种情况都会触发pageChanged事件。事件是从包含的DOM元素模拟并发出的,因此您可以使用选择的框架绑定到这些事件。
三十七、Embedding using Power BI Azure
不建议使用Power BI Azure嵌入。Power BI Azure Embedded已弃用
三十八、powerbi-report-authoring
提供了一个报表库(powerbi-client库的扩展)。
三十九、工具Power BI Embedded Playground
Embedded Playground is now available
在这里,无需编写任何代码即可尝试我们的许多功能。