Zum Hauptinhalt springen

Excel Export

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

Beispiel

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​

warnung

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.

Download