Excel Export
Die MultiTable kann über die MultiTableXlsxExporter Komponente als Excel-Datei gespeichert werden.

Verwendung
Über das MultiTable Modul kann diese Komponente sehr einfach hinzugefügt werden.
Code Beispiel
context.enableModules();
const { MultiTableXlsxExporter } = require("ou.sp.gadget.MultiTable");
const options = {
title: "Überschrift",
columns: {
article: {
label: "Artikel",
footerTemplate: "FooterTest"
},
amount: {
label: "Netto",
type: "currency"
},
totalAmount: {
label: "Brutto",
type: "currency",
footerTemplate: function (options) {
var sum = options.rows.reduce(function (acc, row) { return acc + row.amount }, 0)
return sum
}
}
},
rows: [{
"article": "Fahrradzubehör 1",
"amount": 100,
"totalAmount": 119
},
{
"article": "Fahrradzubehör 2",
"amount": 50,
"totalAmount": 59.50
},
{
"article": "Fahrradzubehör 3",
"amount": 200,
"totalAmount": 238
}
]
}
try {
context.returnValue = MultiTableXlsxExporter.downloadAsXlsx(options, util.getTmpPath() + "multiTable.xlsx");
} catch (error) {
context.errorMessage = error
context.returnValue = -1
}
Das TableGadget, TableDialog und TableMonitor unterstützen den Excel Export. In den jeweiligen Klassen stehen die Funktion saveAsXlsx und downloadAsXlsx zur Verfügung.
Limitierungen
Die downloadAsXlsx funktioniert nicht in einem Gadget-Portalskript!
Documents ignoriert den returnType und es erscheint weder das Gadget noch wird ein Download gestartet. Hier müsste das Portalskript über eine benutzerdefinierte Aktion getriggert werden (siehe Client Download)
Client Download
Möchte man die Excel-Datei am Client über den Browser zum Download anbieten, empfiehlt es sich die MultiTable mit der Excel-Exporter-Instanz über eine benutzerdefinierte Aktion zu verwenden.
