createXLSX
Um dynamisch anpassbare, formatierte Excel-Dateien mit mehreren Tabellenblättern direkt aus Datenbanken zu erstellen
Mit dieser Funktion kann eine XLSX-Datei mit individuell anpassbarem Inhalt und mehreren Tabellenblättern erstellt werden, die den in den Eingabeparametern definierten Daten und Stil widerspiegelt.
Die erstellte Datei wird direkt in Ninox gespeichert und bietet dynamische Möglichkeiten zur Datenverwaltung und Formatierung.
Syntax
createXLSX(nid, any, string)
Return
file
Beispiele
sample_script (2KB)
sample_result.xlsx (7KB)
Verwendung von createXLSX
Um mit der Funktion createXLSX eine Excel-Datei zu erstellen:
Erstelle einen Button:
Beim Anklicken löst der Button eine Funktion aus, die anhand der im Formeleditor angegebenen Daten eine Excel-Datei erstellt.Erstelle ein Bild-Feld:
Dieses dient als Link, über den die Datei direkt heruntergeladen werden kann.

Aktiviere den Bearbeitungsmodus und klicke in den Eigenschafen des Buttons in das Feld „Beim Klicken“.
Definiere die Spalten und Zeilen.
Lege die Struktur des Arbeitsblatts fest.
Verwende die Funktion
createXLSX.Definiere Stile und Formatierungen (optional).
Speichere das Skript.
Erstelle die Excel-Datei, indem du auf den Button klickst.
Spalten und Zeilen definieren
Erstelle zunächst ein Objekt, um die Spalten zu definieren:
let columns = [
{
header: "Name",
key: "name",
width: 10,
},
{
header: "Age",
key: "age",
width: 10
},
{
header: "URL",
key: "url",
width: 30
},
{
header: "Description",
key: "description",
width: 20
}
];
Als Nächstes definiere die Zeilen. Bei Bedarf kannst du die unterstützten Sonderfelder (siehe unten) verwenden:
let rows = [
{
name: "Luis Gómez",
age: 30,
url: {
text: "www.google.com",
hyperlink: "http://www.google.com",
tooltip: "www.google.com"
}
},
{
name: "Maria Silva",
age: 25,
url: {
text: "www.google.com",
hyperlink: "http://www.google.com",
tooltip: "www.google.com"
}
},
{
name: "Ayesha Khan",
age: 35,
url: {
text: "www.google.com",
hyperlink: "http://www.google.com",
tooltip: "www.google.com"
}
},
{
name: "Li Wei",
age: 40,
url: {
text: "www.google.com",
hyperlink: "http://www.google.com",
tooltip: "www.google.com"
}
},
{
name: "Rajesh Kumar",
age: 21,
url: {
text: "www.google.com",
hyperlink: "http://www.google.com",
tooltip: "www.google.com"
}
},
{
name: "Sofia Müller",
age: 24,
url: {
text: "www.google.com",
hyperlink: "http://www.google.com",
tooltip: "www.google.com"
}
}
];
Arbeitsblattstruktur definieren
Definiere ein Arbeitsblatt mit Spalten und Zeilen:
let worksheets = {
Sheet1: {
columns: columns,
rows: rows
}
};
Verwendung von createXLSX
Rufe die Funktion createXLSX mit den definierten Arbeitsblättern auf:
Image := createXLSX(this, worksheets, "example.xlsx")
Stile und Formatierung definieren (optional)
Wende einen Stil auf eine Kopfzelle an:
let columns = [
{
header: "Name",
key: "name",
width: 10,
headerStyle: {
font: {
bold: true
}
}
}
];
Wende den Stil auf eine ganze Spalte außer der Kopfzeile an:
let columns = [
{
header: "Name",
key: "name",
width: 10,
style: {
font: {
name: "Comic Sans MS"
}
}
}
];
Stil auf eine ganze Zeile anwenden:
let rows = [
{
name: "Luis Gómez",
age: 30,
// hyperlink field
url: {
text: "www.google.com",
hyperlink: "http://www.google.com",
tooltip: "www.google.com"
},
styles: [
{
fill: {
type: "pattern",
pattern: "solid",
fgColor: {
argb: "F08080"
}
}
}
]
}
];
Stil auf bestimmte Zellen in einer Zeile anwenden:
let rows = [
{
name: "Luis Gómez",
age: 30,
// hyperlink field
url: {
text: "www.google.com",
hyperlink: "http://www.google.com",
tooltip: "www.google.com"
},
styles: [
{
targets: ["name", "age"],
fill: {
type: "pattern",
pattern: "solid",
fgColor: {
argb: "F08080"
}
}
}
]
}
];
Excel-Datei erstellen
Nachdem du dein Skript gespeichert hast, klicke auf den Button, um die Excel-Datei zu erstellen.
Unterstützte Stile und Formatierungsoptionen
Schriftart (Font)
{
font: {
name: "Arial Black",
color: { argb: "FF00FF00" },
family: 2,
size: 14,
italic: true,
underline: true,
bold: true
}
}
Schriftformatierungsoptionen
| Schriftart-Eigenschaft | Beschreibung | Beispielwert(e) |
|---|---|---|
| name | Legt den Schriftartnamen fest. | "Arial", "Calibri" usw. |
| family | Legt die Schriftfamilie (Fallback) als Ganzzahl fest. |
|
| scheme | Legt das Schrift-Schema fest. | "minor", "major", "none" |
| charset | Legt den Zeichensatz der Schriftart als Ganzzahl fest. | 1, 2 usw. |
| size | Legt die Schriftgröße als Ganzzahl fest. | 9, 10, 12, 16 usw. |
| color | Legt die Schriftfarbe als ARGB-Objekt fest. | { argb: "FFFF0000" } |
| bold | Gibt an, ob die Schrift fett ist (Schriftgewicht). | true, false |
| italic | Gibt an, ob die Schrift kursiv ist (Neigung). | true, false |
| underline | Legt den Unterstreichungsstil fest. |
|
| strike | Gibt an, ob die Schrift durchgestrichen ist. | true, false |
| outline | Gibt an, ob die Schrift einen Umriss hat. | true, false |
| vertAlign | Legt die vertikale Ausrichtung der Schrift fest. | "superscript", "subscript" |
Alignment
{ alignment: { vertical: "top", horizontal: "left" }
Excel-Datei erstellen
Wenn du dein Skript gespeichert hast, klicke abschließend auf den Button, um eine Excel-Datei zu erstellen.
Unterstützte Stil- und Formatierungsoptionen
Schriftart
{
font: {
name: "Arial Black",
color: { argb: "FF00FF00" },
family: 2,
size: 14,
italic: true,
underline: true,
bold: true
}
}
Schriftformatierungsoptionen
| Schrifteigenschaft | Beschreibung | Beispielwert(e) |
|---|---|---|
| name | Gibt den Schriftnamen an. | "Arial" "Calibri" usw. |
| family | Gibt die Schriftfamilie für den Fallback als Ganzzahlwert an. | 1 - Serif 2 - Sans Serif 3 - Monospace Andere - unbekannt |
| scheme | Gibt das Schriftschema an. | "minor" "major" "none" |
| charset | Gibt den Schriftzeichensatz als Ganzzahlwert an. | 1 2 usw. |
| size | Gibt die Schriftgröße als Ganzzahlwert an. | 9 10 12 16 usw. |
| color | Gibt die Schriftfarbe als ARGB-Objekt an. | { argb: "FFFF0000" } |
| bold | Gibt an, ob die Schrift fett ist und zeigt das Gewicht an. | true false |
| italic | Gibt an, ob die Schrift kursiv ist und zeigt die Neigung an. | true false |
| underline | Gibt den Unterstreichungsstil der Schrift an. | true false "none" "single" "double" "singleAccounting" "doubleAccounting" |
| strike | Gibt an, ob die Schrift durchgestrichen ist. | true false |
| outline | Gibt an, ob die Schrift eine Kontur hat. | true false |
| vertAlign | Gibt die vertikale Ausrichtung der Schrift an. | "superscript" "subscript" |
Ausrichtung
{ alignment: { vertical: "top", horizontal: "left" }
Ausrichtungsoptionen
| Ausrichtungseigenschaft | Beschreibung | Beispielwert(e) |
|---|---|---|
| horizontal | Legt die horizontale Ausrichtung fest. |
|
| vertical | Legt die vertikale Ausrichtung fest. |
|
| wrapText | Gibt an, ob der Text umbrochen werden soll. | true, false |
| shrinkToFit | Gibt an, ob der Text an die Zellgröße angepasst werden soll. | true, false |
| indent | Legt die Einrückungsebene fest. | 0, 1, 2 usw. |
| readingOrder | Legt die Leserichtung fest. | "rtl", "ltr" |
| textRotation | Legt die Textrotation fest. | 0, 45, 90, -45 usw. |
Füllung
{
fill: {
type: "pattern",
pattern: "solid",
fgColor: { argb: "FF0000FF" }
}
}
Füllungsoptionen
| Füllungs-Eigenschaft | Beschreibung | Beispielwert(e) |
|---|---|---|
| type | Legt den Fülltyp fest. |
|
| pattern | Legt das Füllmuster fest (wenn type = "pattern"). |
|
| fgColor | Legt die Vordergrundfarbe als ARGB-Objekt fest. | { argb: "FFFF0000" } |
| bgColor | Legt die Hintergrundfarbe als ARGB-Objekt fest. | { argb: "FF0000FF" } |
| gradient | Legt den Farbverlauf fest (wenn type = "gradient"). | { degree: 90, stops: [ { position: 0, color: { argb: "FF0000FF" } }, { position: 1, color: { argb: "FFFF0000" } } ] } |
Rahmen
{
border: {
top: { style: "thin", color: { argb: "FF000000" } },
left: { style: "thin", color: { argb: "FF000000" } },
bottom: { style: "thin", color: { argb: "FF000000" } },
right: { style: "thin", color: { argb: "FF000000" } }
}
}
Rahmenoptionen
| Border-Eigenschaft | Beschreibung | Beispielwert(e) |
|---|---|---|
| top, left, bottom, right | Legt den Rahmen für jede Seite der Zelle fest. | { style: "thin", color: { argb: "FF000000" } } |
| diagonal | Legt den diagonalen Rahmen der Zelle fest. | { style: "thin", color: { argb: "FF000000" } } |
| diagonalDown | Gibt an, ob die Diagonale von oben links nach unten rechts gezeichnet wird. | true, false |
| diagonalUp | Gibt an, ob die Diagonale von unten links nach oben rechts gezeichnet wird. | true, false |
Rahmen-Stiloptionen
| Rahmenstil | Beschreibung |
|---|---|
| thin | Dünner Rahmen |
| dotted | Punktierter Rahmen |
| dashDot | Strich-Punkt-Rahmen |
| hair | Sehr dünner (Haar-)Rahmen |
| dashDotDot | Strich-Punkt-Punkt-Rahmen |
| slantDashDot | Schräger Strich-Punkt-Rahmen |
| mediumDashed | Mittel dicker gestrichelter Rahmen |
| mediumDashDotDot | Mittel dicker Strich-Punkt-Punkt-Rahmen |
| mediumDashDot | Mittel dicker Strich-Punkt-Rahmen |
| medium | Mittel dicker Rahmen |
| double | Doppelter Rahmen |
| thick | Dicker Rahmen |
1 Antwort
-
Guten Tag,
ich versuche verzweifelt eine kleine Testtabelle mit Hilfe der Funktion createXLSX nach Excel zu exportieren. Leider funktioniert das hier überhaupt nicht, wenngleich ich das Skript richtig (?) geschrieben habe.
Bei Klick auf den Butten erschein zwar der Name der XLSX-Datei im Bildfeld, ein Klick in das Bildfeld hat jedoch keine Aktion zur Folge. Die gilt sowohl die Sicherung in der iCloud wie für die Sicherung auf der lokalen Festplatte.
Die Ninox-App hat Vollzugriff auf die HDD (Einstellungen > Datenschutz & Sicherheit > Festplattenvollzugriff > Ninox Database = JA
Ich würde mich sehr freuen wenn mir hier eine kompetente Person weiterhelfen könnte. Die kleine Datenbank lege ich in den Anhang.
Vielen Dank
Uli
MacBook Air 2018
Mac OS 14.8.1 Sonoma
Ninox Version 3.17.9
