簡體   English   中英

從 SharePoint Online 導出 Power BI 報告

[英]Export Power BI Report from SharePoint Online

Power BI 報告可以使用內置的導出功能從https://app.powerbi.com/頁面導出。

我需要從嵌入此報告的 SharePoint Online 頁面中提供相同的功能。 請讓我知道步驟。

您可以使用“ 導出到文件” /“ 導出到文件組API”。

  1. 調用導出到文件 API 時,它會觸發導出作業。

  2. 觸發導出作業后,您可以使用輪詢 API( 獲取導出到文件狀態/ 獲取導出到文件狀態在組中)來跟蹤作業,直到它完成。

  3. 導出作業完成后,輪詢 API 調用將返回用於獲取文件的 Power BI URL(該 URL 可在 24 小時內使用)。 您也可以通過調用Get File Of Export To File / Get File Of Export To File In Group API 來下載它。

API 支持並發導出作業請求。 您可以同時運行的作業數量取決於您的報告所在的 SKU, 如此表中詳述(即它需要專用容量 - Power BI Premium 或 Power BI Embedded)。

例如,您可以通過以下方式將 API 與 PowerShell 代碼結合使用:

Import-Module MicrosoftPowerBIMgmt
$username = "account@example.com" 
$password = "SuperStrongPassword" | ConvertTo-SecureString -asPlainText -Force
$groupId = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
$reportId = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
$format = "PDF" # or PNG, or PPTX. For paginated reports can be CSV, DOCX, IMAGE (i.e. page definition plus file format - BMP, EMF, etc.), MHTML, XLSX or XML
$saveToFolder = "D:\"

$credential = New-Object System.Management.Automation.PSCredential($username, $password)
Connect-PowerBIServiceAccount -Credential $credential
$settings = @{ includeHiddenPages = $false; locale = "en-us" }
$powerBIReportConfiguration = @{ settings = $settings }
$export_body = @{ format = $format; powerBIReportConfiguration = $powerBIReportConfiguration }
$export_response = Invoke-PowerBIRestMethod -Url "https://api.powerbi.com/v1.0/myorg/groups/$groupId/reports/$reportId/ExportTo" -Method Post -Body ($export_body | ConvertTo-Json)
$export_response_json = ConvertFrom-Json $export_response
$exportId = $export_response_json.id

Write-Output "Polling export status..."
$maxPollCount = 500
$exportSucceeded = $false
do
{
    $maxPollCount = $maxPollCount - 1
    Start-Sleep -Seconds 5
    $status_response = Invoke-PowerBIRestMethod -Url "https://api.powerbi.com/v1.0/myorg/groups/$groupId/reports/$reportId/exports/$exportId" -Method Get
    $status_response_json = ConvertFrom-Json $status_response
    $status = $status_response_json.status
    $percentComplete = $status_response_json.percentComplete
    Write-Output "Status: $status, percent complete: $percentComplete (retries left: $maxPollCount)"
    if ($status -eq "Succeeded")
    {
        $exportSucceeded = $true
        $resourceLocation = $status_response_json.resourceLocation
        $reportName = $status_response_json.reportName
        $resourceFileExtension = $status_response_json.resourceFileExtension
        $outFile = [IO.Path]::Combine($saveToFolder, $reportName + $resourceFileExtension)
    }
}
until($exportSucceeded -or $maxPollCount -le 0)

Write-Output "Downloading export..."
$download_response = Invoke-PowerBIRestMethod -Url $resourceLocation -Method Get -OutFile $outFile
Write-Output "Download completed."
Disconnect-PowerBIServiceAccount

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM