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 скачивания файлов имеет три метода:
- состояние: доступно из API версии 4.6
exportVisualsContent
: доступно из API версии 4.5exportVisualsContentExtended
: доступно из API версии 5.3.
Разница между двумя методами — возвращаемое значение.
Метод status
Метод состояния возвращает состояние API скачивания файлов:
- PrivilegeStatus.DisabledBy Администратор: отключен параметр администратора клиента
- PrivilegeStatus.NotDeclared: визуальный элемент не имеет объявления для локального хранилища в массиве привилегий
- PrivilegeStatus.NotSupported: API не поддерживается. Дополнительные сведения см . в ограничениях .
- PrivilegeStatus.Allowed: API поддерживается и разрешен.
Метод exportVisualsContent
Метод exportVisualsContent
имеет четыре параметра:
- содержимое: строка
- имя файла: строка
- fileType: string — при экспорте в файл
fileType
.pdf или .xlsx параметр должен бытьbase64
- fileDescription: string
Этот метод возвращает обещание, которое будет разрешено для логического значения.
Метод exportVisualsContentExtended
Метод exportVisualsContentExtended
также имеет четыре параметра:
- содержимое: строка
- имя файла: строка
- fileType: string — при экспорте в файл
fileType
.pdf или .xlsx параметр должен бытьbase64
- fileDescription: string
Этот метод возвращает обещание, которое будет разрешено с результатом типа ExportContentResultInfo
, содержащего следующие параметры:
- downloadCompleted — если скачивание завершено успешно.
- имя файла — экспортируемая имя файла.
Пример: 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 МБ.
- Этот API является привилегированным API.