API λήψης αρχείου
Το API λήψης αρχείων επιτρέπει στους χρήστες να κάνουν λήψη δεδομένων από μια προσαρμοσμένη απεικόνιση σε ένα αρχείο στη συσκευή αποθήκευσής τους. Η λήψη μιας απεικόνισης απαιτεί συγκατάθεση χρήστη και δικαιώματα διαχειριστή που παρέχονται στον καθολικό διακόπτη διαχειριστή. Αυτή η ρύθμιση είναι ξεχωριστή και δεν επηρεάζεται από τους περιορισμούς λήψης που εφαρμόζονται στις ρυθμίσεις μισθωτή εξαγωγής και κοινής χρήσης του οργανισμού σας.
Σημείωμα
Το API λήψης αρχείου έχει τρεις μεθόδους:
exportVisualsContent
είναι διαθέσιμο από την έκδοση API 4.5status
Το είναι διαθέσιμο από την έκδοση API 4.6.exportVisualsContentExtended
Το είναι διαθέσιμο από την έκδοση API 5.3.- Για να μάθετε ποια έκδοση χρησιμοποιείτε, ελέγξτε το
apiVersion
στο αρχείο pbiviz.json .
Χρησιμοποιήστε το API λήψης αρχείων για εξαγωγή σε αρχεία των ακόλουθων τύπων:
- .txt
- .Csv
- .Json
- .tmplt
- .xml
- .xlsx
Πριν ξεκινήσει η λήψη, εμφανίζεται ένα παράθυρο που ζητά επιβεβαίωση ότι η απεικόνιση προέρχεται από μια αξιόπιστη προέλευση.
Τρόπος χρήσης του API λήψης αρχείου
Για να χρησιμοποιήσετε το API λήψης αρχείου, προσθέστε μια δήλωση στον πίνακα δικαιωμάτων στις δυνατότητες απεικόνισης.
Το API λήψης αρχείου έχει τρεις μεθόδους:
- status: διαθέσιμο από την έκδοση API 4.6
exportVisualsContent
: διαθέσιμο από την έκδοση API 4.5exportVisualsContentExtended
: διαθέσιμο από την έκδοση API 5.3.
Η διαφορά μεταξύ των δύο μεθόδων είναι η τιμή επιστροφής.
Η status
μέθοδος
Η μέθοδος κατάστασης επιστρέφει την κατάσταση του API λήψης αρχείου:
- PrivilegeStatus.DisabledBy Διαχείριση: ο διακόπτης διαχειριστή μισθωτή είναι απενεργοποιημένος
- PrivilegeStatus.NotDeclared: η απεικόνιση δεν διαθέτει δήλωση για τον τοπικό χώρο αποθήκευσης στον πίνακα δικαιωμάτων
- PrivilegeStatus.NotSupported: το API δεν υποστηρίζεται. Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Περιορισμοί .
- PrivilegeStatus.Allowed: Το API υποστηρίζεται και επιτρέπεται.
Η exportVisualsContent
μέθοδος
Η exportVisualsContent
μέθοδος έχει τέσσερις παραμέτρους:
- content: συμβολοσειρά
- όνομα αρχείου: συμβολοσειρά
- fileType: string - Κατά την εξαγωγή σε ένα αρχείο .pdf ή .xlsx , η
fileType
παράμετρος θα πρέπει να είναιbase64
- fileDescription: συμβολοσειρά
Αυτή η μέθοδος επιστρέφει μια υπόσχεση που θα επιλυθεί για μια δυαδική τιμή.
Η exportVisualsContentExtended
μέθοδος
Η exportVisualsContentExtended
μέθοδος έχει επίσης τέσσερις παραμέτρους:
- content: συμβολοσειρά
- όνομα αρχείου: συμβολοσειρά
- fileType: string - Κατά την εξαγωγή σε ένα αρχείο .pdf ή .xlsx , η
fileType
παράμετρος θα πρέπει να είναιbase64
- fileDescription: συμβολοσειρά
Αυτή η μέθοδος επιστρέφει μια υπόσχεση, η οποία θα επιλυθεί με ένα αποτέλεσμα τύπου ExportContentResultInfo
που περιέχει τις ακόλουθες παραμέτρους:
- downloadCompleted – εάν η λήψη ολοκληρώθηκε με επιτυχία.
- filename – το όνομα του αρχείου που έχει εξαχθεί.
Παράδειγμα: API λήψης αρχείου
Ακολουθεί ένα παράδειγμα για το πώς μπορείτε να κάνετε λήψη του περιεχομένου μιας προσαρμοσμένης απεικόνισης σε ένα αρχείο Excel και ένα αρχείο κειμένου.
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
}
}
}
}
Ζητήματα προς εξέταση και περιορισμοί
- Το API υποστηρίζεται μόνο στο Υπηρεσία Power BI και Power BI Desktop
- Το όριο μεγέθους για ένα ληφθέντα αρχείο είναι 30 MB.
- Αυτό το API είναι ένα προνομιακό API.