ASP.NET Core 2调用Azure云上的PowerBI报表展示
在開發(fā)企業(yè)應(yīng)用中,報(bào)表功能是當(dāng)之無(wú)愧的重頭戲,如何將數(shù)據(jù)通過合適的報(bào)表呈現(xiàn)出來(lái)成為每個(gè)項(xiàng)目人員必需面臨的問題。而找到一款合適的報(bào)表往往都需要考率價(jià)格、開發(fā)、風(fēng)格、支撐等因素。那么,我在這里給大家介紹一款由微軟提供的可視化報(bào)表工具Power BI,并通過ASP.NET Core2程序調(diào)用云端的報(bào)表(國(guó)內(nèi)的Azure云),并用代碼方式將報(bào)表與項(xiàng)目程序集成起來(lái),以供你有個(gè)更好的選擇。
?
Power BI
Power BI 是一套商業(yè)分析工具,用于在團(tuán)隊(duì)組織中提供數(shù)據(jù)報(bào)表呈現(xiàn),并支持多種不同的數(shù)據(jù)源連接,可生成美觀的報(bào)表并進(jìn)行發(fā)布,供團(tuán)隊(duì)人員在 Web端與和移動(dòng)端上使用。微軟Power BI 工具同時(shí)提供一個(gè)PC桌面版的客戶端“Power BI Desktop”幫助用戶來(lái)設(shè)計(jì)報(bào)表,還提供了一套基于Azure云端的報(bào)表發(fā)布部署環(huán)境“Power BI Embedded”。而這里我們主要介紹借助“Power BI Embedded”完成報(bào)表集成。如下是跟Power BI相關(guān)的網(wǎng)址:
Power BI 中文官網(wǎng):https://powerbi.microsoft.com/zh-cn/
Power BI Embedded 中文官網(wǎng):https://powerbi.microsoft.com/zh-cn/developers/embedded-analytics/isv/
?
準(zhǔn)備
在著手開始實(shí)現(xiàn)之前咱們需準(zhǔn)備一些必要的環(huán)境,如下:
1、在Azure上創(chuàng)建一個(gè)名為“iot-pbi”的Power BI 工作區(qū)集合,并獲取其訪問Key,留待后面使用。
2、通過Power BI Desktop工具來(lái)設(shè)計(jì)一個(gè)報(bào)表名為“work1.pbix”,并保存到本地磁盤。
3、從Github上下載一個(gè)由微軟開源的管理Azure端Power BI工作區(qū)的命令行工具”ProvisionSample“的代碼,使用VS2017打開項(xiàng)目后并編譯它。代碼地址:https://github.com/Azure-Samples/power-bi-embedded-integrate-report-into-web-app。
4、成功編譯后在其bin目錄找到“ProvisionSample.exe.config”文件,將其打開,并按自身情況填寫,如下:
5、用VS2017開發(fā)工具創(chuàng)建一個(gè)ASP.NET Core2帶視圖的項(xiàng)目名“WebApplication1”。
?
實(shí)現(xiàn)
通過上述的準(zhǔn)備后,咱們就可以進(jìn)入具體的發(fā)布與集成工作了,如下:
1、因?yàn)锳zure的用戶臺(tái)上暫時(shí)沒法直接創(chuàng)建Power BI的工作區(qū)與報(bào)表,所以我們必需借助從Github下載編譯的工具“ProvisionSample”來(lái)完成Power BI的工作區(qū)與報(bào)表的管理工作。在bin目錄下找到“ProvisionSample.exe”文件啟動(dòng)它,截圖如下:
?
2、依次輸入命令“1”、“6”來(lái)創(chuàng)建一個(gè)新的工作區(qū),并獲取該工作區(qū)的ID。
3、依次輸入命令“2”、“3”來(lái)將本地磁盤的文件“work1.pbix”導(dǎo)入到Azure端,并獲取該報(bào)表的ID。
4、通過上面幾步后我們已將本地的報(bào)表發(fā)布到Azure云端了,那么咱們下一步就來(lái)看看如何在ASP.NET Core2項(xiàng)目集成該云端的報(bào)表吧。首先,需在ASP.NET Core2項(xiàng)目中通過Nuget管理器引用第三方庫(kù)“PowerBI.NetStandard.Api”(Azure官網(wǎng)提供的類庫(kù)“Microsoft.PowerBI.Core”暫時(shí)不支持ASP.NET Core),該庫(kù)的作用是幫助我們可以很簡(jiǎn)便的獲取報(bào)表授權(quán)的Token,后端代碼如下:
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項(xiàng)目的前后端代碼就全部編寫完成,運(yùn)行項(xiàng)目后效果如下:
?
總結(jié)
1、Azure云的用戶臺(tái)暫時(shí)沒提供管理Power BI工作區(qū)、報(bào)表的功能,所以這里借助開源工具“ProvisionSample”來(lái)完成管理。
2、Power BI發(fā)布到網(wǎng)頁(yè)前端后是通過由后端生成的一個(gè)Token來(lái)完成身份認(rèn)證的,如果沒有該Token報(bào)表則無(wú)法正常打開呈現(xiàn)。
3、Azure官網(wǎng)提供的類庫(kù)“Microsoft.PowerBI.Core”暫時(shí)不支持ASP.NET Core,這里使用第三方庫(kù)“PowerBI.NetStandard.Api”來(lái)獲取報(bào)表的授權(quán)Token。
原文地址:?https://www.cnblogs.com/Andre/p/9857067.html
.NET社區(qū)新聞,深度好文,歡迎訪問公眾號(hào)文章匯總 http://www.csharpkit.com
總結(jié)
以上是生活随笔為你收集整理的ASP.NET Core 2调用Azure云上的PowerBI报表展示的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C# 中使用面向切面编程(AOP)中实践
- 下一篇: 聊聊如何设计千万级吞吐量的.Net Co