แชร์ผ่าน


API ดาวน์โหลดไฟล์

API การดาวน์โหลดไฟล์ช่วยให้ผู้ใช้สามารถดาวน์โหลดข้อมูลจากวิชวลแบบกําหนดเองลงในไฟล์บนอุปกรณ์เก็บข้อมูลได้ การดาวน์โหลดวิชวลจําเป็นต้องได้รับการยินยอมจากผู้ใช้และสิทธิ์ของผู้ดูแลระบบที่มีให้ในสวิตช์ส่วนกลางของผู้ดูแลระบบ การตั้งค่านี้จะแยกต่างหากและไม่ได้รับผลกระทบจากข้อจํากัดการดาวน์โหลดที่ใช้ในการตั้งค่าการส่งออกและการแชร์ผู้เช่าขององค์กรของคุณ

สกรีนช็อตของการตั้งค่าผู้ดูแลระบบเพื่อเปิดใช้งานการดาวน์โหลดวิชวลแบบกําหนดเอง

หมายเหตุ

API การดาวน์โหลดไฟล์มีสามวิธี:

  • exportVisualsContent พร้อมใช้งานจาก API เวอร์ชัน 4.5
  • status พร้อมใช้งานจาก API เวอร์ชัน 4.6
  • exportVisualsContentExtended พร้อมใช้งานจาก API เวอร์ชัน 5.3
  • เมื่อต้องการตรวจสอบเวอร์ชันที่คุณกําลังใช้ ให้ตรวจสอบ apiVersion ในไฟล์ pbiviz.json

ใช้ API ดาวน์โหลดไฟล์เพื่อส่งออกไปยังไฟล์ประเภทต่อไปนี้:

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

ก่อนที่การดาวน์โหลดจะเริ่มต้น จะมีหน้าต่างปรากฏขึ้นเพื่อขอให้ยืนยันว่าวิชวลมาจากแหล่งที่เชื่อถือได้

สกรีนช็อตที่ขอให้ยืนยันการดาวน์โหลดเฉพาะในกรณีที่มาจากแหล่งที่เชื่อถือได้เท่านั้น

วิธีใช้ API ดาวน์โหลดไฟล์

หากต้องการใช้ API ดาวน์โหลดไฟล์ ให้เพิ่มการประกาศไปยัง อาร์เรย์สิทธิ์ในความสามารถของวิชวล

API การดาวน์โหลดไฟล์มีสามวิธี:

  • status: พร้อมใช้งานจาก API เวอร์ชัน 4.6
  • exportVisualsContent: พร้อมใช้งานจาก API เวอร์ชัน 4.5
  • exportVisualsContentExtended: พร้อมใช้งานจาก 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 ที่มีสิทธิ์พิเศษ