Get sheets from an app
With qlik-embed, you can access the metadata of a Qlik Analytics (Sense) application, including, but not limited to, obtaining a list of sheets and adding them to a dropdown list element.
<script> //qlik-embed connection script to add qlik-embed web component</script><body> <div> <select id="sheetdrop" name="SheetList"> </select> </div> <div> <qlik-embed id="appSheets" ui="object" app-id="<APP_ID_FROM_QLIK_ANALYTICS>" object-id="<OBJECT_ID_OF_SHEET_IN_APP>" ></qlik-embed> </div></body><script type="module"> const embeddedObject = document.getElementById("appSheets"); const refApi = await embeddedObject.getRefApi(); const doc = await refApi.getDoc(); const appSheetList = await doc.getSheetList();
//add the sheet references to a dropdown list let dd = document.getElementById('sheetdrop'); dd.length = 0; let defaultOption = document.createElement('option'); defaultOption.text = "Select a sheet to navigate to"; dd.add(defaultOption); dd.selectedIndex=0;
let option; for (let i=0;i<appSheetList.length; i++) { option = document.createElement('option'); option.text = appSheetList[i].qMeta.title; option.value = appSheetList[i].qMeta.id; dd.add(option); }
//add a listener to change the object-id property in the qlik-embed element dd.addEventListener("change", function() { if (dd.selectedIndex > 0) { let selOption = dd.options[dd.selectedIndex]; console.log(selOption.value); embeddedObject.setAttribute('object-id', selOption.value); } });</script>
Want to explore more qlik-embed? Explore all qlik-embed UIs and params.