Megosztás a következőn keresztül:


Fájlletöltési API

A fájlletöltési API lehetővé teszi, hogy a felhasználók adatokat töltsenek le egy egyéni vizualizációból egy fájlba a tárolóeszközükön. A vizualizációk letöltéséhez felhasználói hozzájárulásra és rendszergazdai engedélyre van szükség a felügyeleti globális kapcsolóban. Ezt a beállítást nem érintik a szervezet exportálási és megosztási bérlői beállításaiban alkalmazott letöltési korlátozások.

Képernyőkép az egyéni vizualizációk letöltését engedélyező rendszergazdai beállításról.

Feljegyzés

A fájlletöltési API három módszerrel rendelkezik:

  • exportVisualsContent az API 4.5-ös verziójából érhető el
  • status az API 4.6-os verziójában érhető el.
  • exportVisualsContentExtended az API 5.3-es verziójában érhető el.
  • Ha meg szeretné tudni, hogy melyik verziót használja, ellenőrizze a apiVersionpbiviz.json fájlban.

A fájlletöltési API-val exportálhat az alábbi típusú fájlokba:

  • .txt
  • .Csv
  • .Json
  • .tmplt
  • .xml
  • .pdf
  • .xlsx

A letöltés megkezdése előtt megjelenik egy ablak, amely arra kéri, hogy ellenőrizze, hogy a vizualizáció megbízható forrásból származik-e.

A letöltés megerősítését kérő képernyőkép, amely csak megbízható forrásból származik.

A fájlletöltési API használata

A fájlletöltési API használatához adjon hozzá egy deklarációt a privileges tömbhöz a vizualizációs képességekben.

A fájlletöltési API három módszerrel rendelkezik:

A két módszer közötti különbség a visszatérési érték.

A status metódus

Az állapotmetódus a fájlletöltési API állapotát adja vissza:

  • PrivilegeStatus.DisabledBy Rendszergazda: a bérlői rendszergazdai kapcsoló ki van kapcsolva
  • PrivilegeStatus.NotDeclared: a vizualizáció nem rendelkezik deklarációval a helyi tárolóhoz a privileges tömbben
  • PrivilegeStatus.NotSupported: az API nem támogatott. További információkért tekintse meg a korlátozásokat .
  • PrivilegeStatus.Allowed: az API támogatott és engedélyezett.

A exportVisualsContent metódus

A exportVisualsContent metódus négy paraméterből áll:

  • tartalom: sztring
  • fájlnév: sztring
  • fileType: sztring – .pdf vagy .xlsx fájlba való exportáláskor a fileType paraméternekbase64
  • fileDescription: sztring

Ez a metódus egy logikai értékre feloldott ígéretet ad vissza.

A exportVisualsContentExtended metódus

A exportVisualsContentExtended metódusnak négy paramétere is van:

  • tartalom: sztring
  • fájlnév: sztring
  • fileType: sztring – .pdf vagy .xlsx fájlba való exportáláskor a fileType paraméternekbase64
  • fileDescription: sztring

Ez a metódus egy ígéretet ad vissza, amely a következő paramétereket tartalmazó típus ExportContentResultInfo eredményével lesz feloldva:

  • downloadCompleted – ha a letöltés sikeresen befejeződött.
  • fájlnév – az exportált fájlnév.

Példa: fájlletöltési API

Íme egy példa arra, hogyan töltheti le egy egyéni vizualizáció tartalmát egy Excel-fájlba és egy szövegfájlba.

import IDownloadService = powerbi.extensibility.IDownloadService;
...

export class Visual implements IVisual {
    ...
    private downloadService: IDownloadService;
    ...

    constructor(options: VisualConstructorOptions) {
        this.downloadService = options.host.downloadService;
         ...

        const downloadBtn: HTMLElement = document.createElement("button");
        downloadBtn.onclick = () => {
            let contentXlsx: string = ...;//content in base64
            let contentTxt: string = ...;
            this.downloadService.exportVisualsContent(contentTxt, "mytxt.txt", "txt", "txt file").then((result) => {
                if (result) {
                    //do something
                }
            }).catch(() => {
                //handle error
            });

            this.downloadService.exportVisualsContent(contentXlsx, "myfile.xlsx", "base64", "xlsx file").then((result) => {
                if (result) {
                    //do something
                }
            }).catch(() => {
                //handle error
            });

            this.downloadService.exportVisualsContentExtended(contentXlsx, "myfile.xlsx", "base64", "xlsx file").then((result) => {
                if (result.downloadCompleted) {
                    //do something
                    console.log(result.fileName);
                }
            }).catch(() => {
                //handle error
            });
        };

        // if you are using API version > 4.6.0
        downloadBtn.onclick = async () => {
            try {
                const status: powerbi.PrivilegeStatus = await this.downloadService.exportStatus();
                if (status === powerbi.PrivilegeStatus.Allowed) {
                    const result = await this.downloadService.exportVisualsContent('aaaaa','a.txt', 'text/plain', 'aa');
                    // handle result
                } else {
                    // handle if the API is not allowed
                }

            } catch (err) {
                //handle error
            }
        }
    }
}

Szempontok és korlátozások

  • Az API csak a Power BI szolgáltatás és a Power BI desktopban támogatott
  • A letöltött fájlok méretkorlátja 30 MB.
  • Ez az API egy emelt szintű API.