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