0

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:

  1. Erstelle einen Button:
    Beim Anklicken löst der Button eine Funktion aus, die anhand der im Formeleditor angegebenen Daten eine Excel-Datei erstellt.

  2. 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“.

  1. Definiere die Spalten und Zeilen.

  2. Lege die Struktur des Arbeitsblatts fest.

  3. Verwende die Funktion createXLSX.

  4. Definiere Stile und Formatierungen (optional).

  5. Speichere das Skript.

  6. 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.
  • 1 – Serif
  • 2 – Sans Serif
  • 3 – Monospace
  • Andere – unbekannt
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.
  • true
  • false
  • "none"
  • "single"
  • "double"
  • "singleAccounting"
  • "doubleAccounting"
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.
  • "left"
  • "center"
  • "right"
  • "fill"
  • "justify"
  • "centerContinuous"
  • "distributed"
vertical Legt die vertikale Ausrichtung fest.
  • "top"
  • "middle"
  • "bottom"
  • "distributed"
  • "justify"
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"
  • "gradient"
pattern Legt das Füllmuster fest (wenn type = "pattern").
  • "solid"
  • "darkGray"
  • "mediumGray"
  • "lightGray"
  • "gray125"
  • "gray0625"
  • "darkHorizontal"
  • "darkVertical"
  • "darkDown"
  • "darkUp"
  • "darkGrid"
  • "darkTrellis"
  • "lightHorizontal"
  • "lightVertical"
  • "lightDown"
  • "lightUp"
  • "lightGrid"
  • "lightTrellis"
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

null
    • ulrich
    • vor 1 Monat
    • Gemeldet - anzeigen

    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