sense-extension-recipes
Version:
Recipes on working with Qlik Sense Visualization Extensions.
69 lines (56 loc) • 1.59 kB
JavaScript
define([
'jquery',
'qlik',
'./properties',
'./initialproperties',
'./lib/js/extensionUtils',
'text!./lib/css/style.css'
],
function ($, qlik, props, initProps, extensionUtils, cssContent) {
'use strict';
extensionUtils.addStyleToHeader(cssContent);
return {
definition: props,
initialProperties: initProps,
snapshot: { canTakeSnapshot: false },
paint: function ( $element, layout ) {
var qTable = qlik.table(this);
// Default rendering with HTML injection
$element.empty();
var $exportButton = $( document.createElement('button'));
$exportButton.html('Export');
$exportButton.bind('click', function ( ) {
var exportConfig = {
download: true,
filename: 'my-export.xlsx',
format: 'OOXML'
};
qTable.exportData( exportConfig, function ( reply ) {
console.log('reply', reply);
});
});
$element.append($exportButton);
var table = '<table border="1">';
table += '<thead>';
table += '<tr>';
for (var i = 0; i < qTable.headers.length; i++) {
table += '<th>' + qTable.headers[i].qFallbackTitle + '</th>';
}
table += '</tr>';
table += '</thead>';
table += '<tbody>';
for (var r = 0; r < qTable.rows.length; r++) {
table += '<tr>';
for (var c = 0; c < qTable.rows[r].cells.length; c++) {
table += '<td>';
table += qTable.rows[r].cells[c].qText;
table += '</td>';
}
table += '</tr>';
}
table += '</tbody>';
table += '</table>';
$element.append( table );
}
};
});