ASP.NET Core 2调用Azure云上的PowerBI报表展示

在开发企业应用中,报表功能是当之无愧的重头戏,如何将数据通过合适的报表呈现出来成为每个项目人员必需面临的问题。而找到一款合适的报表往往都需要考率价格、开发、风格、支撑等因素。那么,我在这里给大家介绍一款由微软提供的可视化报表工具Power BI,并通过ASP.NET Core2程序调用云端的报表(国内的Azure云),并用代码方式将报表与项目程序集成起来,以供你有个更好的选择。

 

Power BI

Power BI 是一套商业分析工具,用于在团队组织中提供数据报表呈现,并支持多种不同的数据源连接,可生成美观的报表并进行发布,供团队人员在 Web端与和移动端上使用。微软Power BI 工具同时提供一个PC桌面版的客户端“Power BI Desktop”帮助用户来设计报表,还提供了一套基于Azure云端的报表发布部署环境“Power BI Embedded”。而这里我们主要介绍借助“Power BI Embedded”完成报表集成。如下是跟Power BI相关的网址:

Power BI 中文官网:https://powerbi.microsoft.com/zh-cn/

Power BI Embedded 中文官网:https://powerbi.microsoft.com/zh-cn/developers/embedded-analytics/isv/

 

准备

在着手开始实现之前咱们需准备一些必要的环境,如下:

1、在Azure上创建一个名为“iot-pbi”的Power BI 工作区集合,并获取其访问Key,留待后面使用。

2、通过Power BI Desktop工具来设计一个报表名为“work1.pbix”,并保存到本地磁盘。

3、从Github上下载一个由微软开源的管理Azure端Power BI工作区的命令行工具”ProvisionSample“的代码,使用VS2017打开项目后并编译它。代码地址:https://github.com/Azure-Samples/power-bi-embedded-integrate-report-into-web-app。

4、成功编译后在其bin目录找到“ProvisionSample.exe.config”文件,将其打开,并按自身情况填写,如下:

640?wx_fmt=png

5、用VS2017开发工具创建一个ASP.NET Core2带视图的项目名“WebApplication1”。

 

实现

通过上述的准备后,咱们就可以进入具体的发布与集成工作了,如下:

1、因为Azure的用户台上暂时没法直接创建Power BI的工作区与报表,所以我们必需借助从Github下载编译的工具“ProvisionSample”来完成Power BI的工作区与报表的管理工作。在bin目录下找到“ProvisionSample.exe”文件启动它,截图如下:

640?wx_fmt=png

 

2、依次输入命令“1”、“6”来创建一个新的工作区,并获取该工作区的ID。

3、依次输入命令“2”、“3”来将本地磁盘的文件“work1.pbix”导入到Azure端,并获取该报表的ID。

4、通过上面几步后我们已将本地的报表发布到Azure云端了,那么咱们下一步就来看看如何在ASP.NET Core2项目集成该云端的报表吧。首先,需在ASP.NET Core2项目中通过Nuget管理器引用第三方库“PowerBI.NetStandard.Api”(Azure官网提供的类库“Microsoft.PowerBI.Core”暂时不支持ASP.NET Core),该库的作用是帮助我们可以很简便的获取报表授权的Token,后端代码如下:

640?wx_fmt=png

5、后端代码编写完成后,在视图层加入如下前端代码:

<script src="https://microsoft.github.io/PowerBI-JavaScript/demo/node_modules/jquery/dist/jquery.js"></script>

<script src="https://microsoft.github.io/PowerBI-JavaScript/demo/node_modules/powerbi-client/dist/powerbi.js"></script>


<div id="reportContainer" style="width:100%;height:850px;"></div>

<script>

    var token ='@ViewBag.StrToken';

    var embedConfiguration = {

        type: 'report',

        accessToken: token,

        id: 'b5904f26-47cc-4455-9025-06258ea5d8f5',

        embedUrl: 'https://embedded.powerbi.cn/appTokenReportEmbed'

    };


    var reportContainer = $('#reportContainer');

    var report = powerbi.embed(reportContainer.get(0), embedConfiguration);

</script>


6、至此,基于ASP.NET Core2项目的前后端代码就全部编写完成,运行项目后效果如下:

640?wx_fmt=jpeg

 

总结

1、Azure云的用户台暂时没提供管理Power BI工作区、报表的功能,所以这里借助开源工具“ProvisionSample”来完成管理。

2、Power BI发布到网页前端后是通过由后端生成的一个Token来完成身份认证的,如果没有该Token报表则无法正常打开呈现。

3、Azure官网提供的类库“Microsoft.PowerBI.Core”暂时不支持ASP.NET Core,这里使用第三方库“PowerBI.NetStandard.Api”来获取报表的授权Token。

原文地址: https://www.cnblogs.com/Andre/p/9857067.html


.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

640?wx_fmt=jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/319287.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2020牛客国庆集训派对day1 Zeldain Garden

Zeldain Garden 题意&#xff1a; 问[L,R]内所有数的因子的数量和 题解&#xff1a; 如果传统暴力做肯定不行 我们来找找规律&#xff1a; 数字&#xff1a; 因子数目 1~n的因子数和 1 1 1 2 2 321/ 3 2 5311 4 3 84211 5 2 1052111 6 4 14 7 2 16 8…

CF585E-Present for Vitalik the Philatelist【莫比乌斯反演,狄利克雷前缀和】

正题 题目链接:https://www.luogu.com.cn/problem/CF585E 题目大意 给出一个大小为nnn的可重集TTT&#xff0c;求有多少个它的非空子集SSS和元素xxx满足 x∉S,gcd{S}>1,gcd(S,x)1x\notin S,gcd\{S\}>1,gcd(S,x)1x∈/​S,gcd{S}>1,gcd(S,x)1 1≤n≤51051\leq n\leq 5…

ABC182——F - Valid payments Editorial

F - Valid payments Editorial 大佬题解 看了述题解我才刚理解题目意思。 Here, both Lunlun and the clerk used the minimum number of coins needed to represent those amounts of money. 这句话意味着任何数都能用a1…ana_1\dots a_na1​…an​这些面值的货币唯一表示 并…

【数论】GCD SUM(P2398)

正题 P2398 题目大意 给出n&#xff0c;求∑i1n∑j1ngcd(i,j)\sum_{i1}^n\sum_{j1}^ngcd(i,j)i1∑n​j1∑n​gcd(i,j) 解题思路 考虑先枚举gcd&#xff0c;那么有 ∑d1nd∑i1n/d∑j1n/d[gcd(i,j)1]\sum_{d1}^nd\sum_{i1}^{n/d}\sum_{j1}^{n/d}[gcd(i,j)1]d1∑n​di1∑n/d​j…

AT4519-[AGC032D]Rotation Sort【dp】

正题 题目链接:https://www.luogu.com.cn/problem/AT4519 题目大意 给出一个长度为nnn的排列&#xff0c;每次可以选择一个区间&#xff0c;然后花费AAA的代价向左旋转&#xff08;最左边的丢到最右边&#xff09;或者花费BBB的代价向右旋转。 排升序序的最小花费。 1≤n≤50…

2020牛客国庆集训派对day2 VIRUS OUTBREAK

VIRUS OUTBREAK 文章目录题目描述输入描述:输出描述:题解&#xff1a;代码&#xff1a;题目描述 The State Veterinary Services Department recently reported an outbreak of a newly found cow disease. All cows found to have affected by the disease have since euthan…

Codeforces Round #684 (Div. 2)

A - Buy the String 要么全变成1要么全变成0要么一个都不改变&#xff0c;三种情况取最小。 #define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0) #pragma GCC optimize(2) #include<set> #include<map> #include<cmath> #include<stack>…

聊聊如何设计千万级吞吐量的.Net Core网络通信!

作者&#xff1a;大石头时间&#xff1a;2018-10-26 晚上 20:00地点&#xff1a;QQ群-1600800内容&#xff1a;网络通信&#xff0c;网络库使用方式网络库设计理念&#xff0c;高性能要点介绍首先看下面这张很具有代表性的图&#xff0c;2018年5月份做的测试。当时单服务器得到…

2020牛客国庆集训派对day2 AKU NEGARAKU

来源&#xff1a;牛客网&#xff1a; 题目描述 1st Academy is an international leadership training academy based in Kuala Lumpur. Every year, the company trains thousands of people to be supplied to companies around the world. To be fair amongst all the tra…

P5540-[BalkanOI2011]timeismoney|最小乘积生成树【最小生成树,凸壳】

正题 题目链接:https://www.luogu.com.cn/problem/P5540 题目大意 给出nnn个点mmm条边边权是一个二元组(ai,bi)(a_i,b_i)(ai​,bi​)&#xff0c;求出一棵生成树最小化 (∑e∈Tae)(∑e∈Tbe)(\sum_{e\in T}a_e)\times(\sum_{e\in T}b_e)(e∈T∑​ae​)(e∈T∑​be​) 的情况下…

【数论】能量采集(P1447)

正题 P1447 题目大意 给出n,m&#xff0c;求2∑i1n∑j1m(gcd(i,j)−1)nm2\times \sum_{i1}^n\sum_{j1}^m(gcd(i,j)-1)n\times m2i1∑n​j1∑m​(gcd(i,j)−1)nm 解题思路 2∑i1n∑j1m(gcd(i,j)−1)nm2∑i1n∑j1mgcd(i,j)−nm2\times \sum_{i1}^n\sum_{j1}^m(gcd(i,j)-1)n\tim…

codeforces1440 E. Greedy Shopping

昨天晚上做完4题还有30分钟&#xff0c;感觉太晚了就没继续写&#xff0c;不过看了下E题感觉是一个线段树题目&#xff0c;今天中午看了看发现就是一个线段树上递归的询问问题&#xff0c;不过我之前没写过但是靠着日益强大的乱写能力竟然水出来了~~ E. Greedy Shopping 不难…

MonkeyFest2018 微软最有价值专家讲座

MonkeyFest2018微软最有价值专家讲座Monkey Fest 是一个一年一度由全球Microsoft Xamarin跨平台开发者发起的全球性社区活动&#xff0c;主要是推广在云、人工智能、大数据、移动开发等技术。本次活动同时在新加坡&#xff0c;美国&#xff0c;日本&#xff0c;加拿大&#xff…

2020牛客国庆集训派对day2 MATRIX MULTIPLICATION CALCULATOR

MATRIX MULTIPLICATION CALCULATOR 题意&#xff1a; 求两矩阵相乘 题解&#xff1a; 应该都学过把。。。矩阵相乘 矩阵相乘的前提是两个矩阵的列等于另一个矩阵的行 也就是cij∑aik*bkj 原理很简单注意格式&#xff0c;但是我遇到一个玄学问题。。。 就是卡格式了。。我人…

P5369-[PKUSC2018]最大前缀和【状压dp】

正题 题目链接:https://www.luogu.com.cn/problem/P5369 题目大意 一个数列aaa的权值定义为max{∑i1kai}(k∈[1,n])max\{\sum_{i1}^ka_i\}(k\in[1,n])max{∑i1k​ai​}(k∈[1,n]) 给出nnn个数字&#xff0c;求它们所有排列的权值和 1≤n≤201\leq n\leq 201≤n≤20 解题思路 …

【数论】疯狂 LCM(P1891)

正题 P1891 题目大意 有T个询问&#xff0c;每个询问给出n&#xff0c;求∑i1nlcm(i,n)\sum_{i1}^nlcm(i,n)i1∑n​lcm(i,n) 解题思路 ∑i1nlcm(i,n)\sum_{i1}^nlcm(i,n)i1∑n​lcm(i,n) n∑i1ni/gcd(i,n)n\sum_{i1}^ni/gcd(i,n)ni1∑n​i/gcd(i,n) n∑d∣n1d∑i1ni[gcd(i,n)…

codeforces1440 D. Graph Subset Problem

D. Graph Subset Problem jiangly代码%%% 感谢大佬对jly代码的解释 先贪心找一下clique&#xff0c;如果某个点的度数是k-1&#xff0c;那就爆搜他的相邻节点组成clique&#xff0c;看看是不是完全子图。如果不是由于这个点的度数小于k&#xff08;若完全子图中由此点只能是c…

P3911 最小公倍数之和

最小公倍数之和 题目描述&#xff1a; 对于A1&#xff0c;A2…AN&#xff0c;求 ∑i1N∑i1Nlcm(Ai,Aj)\sum_{i1}^{N}\sum_{i1}^{N} lcm(Ai,Aj)∑i1N​∑i1N​lcm(Ai,Aj) 题解&#xff1a; 莫比乌斯反演&#xff0c;直接强推一波 推导过程我也是一知半解&#xff0c;大体如图…

终于明白了 C# 中 Task.Yield 的用途

最近在阅读 .NET Threadpool starvation, and how queuing makes it worse 这篇博文时发现文中代码中的一种 Task 用法之前从未见过&#xff0c;在网上看了一些资料后也是云里雾里不知其解&#xff0c;很是困扰。今天在程序员节的大好日子里终于想通了&#xff0c;于是写下这篇…

Wannafly挑战赛23F-计数【原根,矩阵树定理,拉格朗日插值】

正题 题目链接:https://ac.nowcoder.com/acm/contest/161/F 题目大意 给出nnn个点的一张图&#xff0c;求它的所有生成树中权值和为kkk的倍数的个数。输出答案对ppp取模 1≤n,k≤100,1≤m≤104,p∈[2,109]∩Pri1\leq n,k\leq 100,1\leq m\leq 10^4,p\in[2,10^9]\cap Pri1≤n,…