API ดาวน์โหลดไฟล์
API การดาวน์โหลดไฟล์ช่วยให้ผู้ใช้สามารถดาวน์โหลดข้อมูลจากวิชวลแบบกําหนดเองลงในไฟล์บนอุปกรณ์เก็บข้อมูลได้ การดาวน์โหลดวิชวลจําเป็นต้องได้รับการยินยอมจากผู้ใช้และสิทธิ์ของผู้ดูแลระบบที่มีให้ในสวิตช์ส่วนกลางของผู้ดูแลระบบ การตั้งค่านี้จะแยกต่างหากและไม่ได้รับผลกระทบจากข้อจํากัดการดาวน์โหลดที่ใช้ในการตั้งค่าการส่งออกและการแชร์ผู้เช่าขององค์กรของคุณ
หมายเหตุ
API การดาวน์โหลดไฟล์มีสามวิธี:
exportVisualsContent
พร้อมใช้งานจาก API เวอร์ชัน 4.5status
พร้อมใช้งานจาก API เวอร์ชัน 4.6exportVisualsContentExtended
พร้อมใช้งานจาก 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.DisabledByAdmin: ปิดการสลับผู้ดูแลระบบผู้เช่า
- PrivilegeStatus.NotDeclared: วิชวลไม่มีการประกาศสําหรับที่เก็บข้อมูลภายในเครื่องในอาร์เรย์สิทธิ์
- PrivilegeStatus.NotSupported: ไม่สนับสนุน API ดู ข้อจํากัด สําหรับข้อมูลเพิ่มเติม
- PrivilegeStatus.Allowed: API ได้รับการสนับสนุนและอนุญาต
วิธีการexportVisualsContent
วิธีการ exportVisualsContent
มีสี่พารามิเตอร์:
- content: สตริง
- filename: string
- fileType: string - เมื่อส่งออกไปยังไฟล์
fileType
.pdf หรือ.xlsx พารามิเตอร์ควรเป็นbase64
- fileDescription: สตริง
วิธีนี้จะให้ผลลัพธ์เป็นสัญญาที่จะได้รับการแก้ไขสําหรับค่าบูลีน
วิธีการexportVisualsContentExtended
เม exportVisualsContentExtended
ธอด ยังมีพารามิเตอร์สี่รายการ:
- content: สตริง
- filename: string
- fileType: string - เมื่อส่งออกไปยังไฟล์
fileType
.pdf หรือ.xlsx พารามิเตอร์ควรเป็น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 เมกะไบต์
- API นี้เป็น API ที่มีสิทธิ์พิเศษ