Export/Import für Excel, Export nach iCal
Die dhtmlxGantt-Bibliothek ermöglicht das Exportieren von Daten aus dem Gantt-Diagramm in die Formate Excel und iCal. Sie können auch Daten aus einer Excel-Datei in den Gantt importieren.
Der Dienst ist kostenlos, aber die erzeugte Excel-/iCal-Datei enthält unter der GPL-Lizenz das Wasserzeichen der Bibliothek. Falls Sie eine Lizenz erwerben, wird das Exportergebnis während des gültigen Supportzeitraums (12 Monate für alle PRO-Lizenzen) wasserzeichenfrei verfügbar.
Es gibt mehrere Export-Dienste. Sie können sie lokal auf Ihrem Computer installieren und das Gantt-Diagramm lokal nach Excel oder iCal exportieren. Beachten Sie, dass Export-Dienste nicht im Gantt-Paket enthalten sind. Lesen Sie den entsprechenden Artikel, um die Nutzungsbedingungen jedes Dienstes zu erfahren.
Einschränkungen des Online-Exportdienstes
Der Exportdienst unterliegt Zeit- und Größenbeschränkungen.
Zeitlimits
Wenn der Prozess länger als 20 Sekunden dauert, wird der Export abgebrochen und folgender Fehler tritt auf:
Error: Timeout trigger 20 seconds
Wenn mehrere Personen gleichzeitig Gantt exportieren, kann der Prozess länger dauern als üblich. Das ist jedoch unproblematisch, da die Zeit, die für die Exportanfrage eines bestimmten Benutzers aufgewendet wird, separat gezählt wird.
Beschränkungen der Anfragesgröße
Es gibt einen gemeinsamen API-Endpunkt https://export.dhtmlx.com/gantt, der für alle Exportmethoden (exportToPDF, exportToPNG, exportToMSProject, etc.) dient. Maximale Anfragesgröße ist 10 MB.
Es gibt auch einen separaten API-Endpunkt https://export.dhtmlx.com/gantt/project, der speziell für die MSProject und Primavera P6 Export-/Import-Dienste (exportToMSProject / importFromMSProject / exportToPrimaveraP6 / importFromPrimaveraP6 nur) vorgesehen ist. Maximale Anfragesgröße: 40 MB.
Verwendung von Export-Modulen
Wenn Sie große Diagramme exportieren müssen, können Sie ein Standalone-Exportmodul verwenden. Das Exportmodul wird kostenlos bereitgestellt, wenn Sie Gantt unter Commercial, Enterprise oder Ultimate Lizenz erhalten haben, oder Sie können das Modul separat kaufen.
Read more on the usage of the export module for PDF. Dieses Exportmodul kann Daten nach PDF-, PNG-, Excel- und iCal-Dateien exportieren.
Export nach Excel
Um Daten aus dem Gantt-Diagramm in ein Excel-Dokument zu exportieren, führen Sie Folgendes aus:
- Um die Export-/Import-Funktionalität zu verwenden, aktivieren Sie das export_api-Plugin über die plugins Methode:
gantt.plugins({
export_api: true
});
Dadurch können Sie entweder den Online-Exportdienst verwenden oder ein lokales Exportmodul verwenden.
Wenn Sie eine Gantt-Version älter als 8.0 verwenden, müssen Sie https://export.dhtmlx.com/gantt/api.js in Ihre Seite einbinden, um die Exportfunktionalität zu aktivieren, z.B.:
<script src="codebase/dhtmlxgantt.js"></script>
<script src="https://export.dhtmlx.com/gantt/api.js"></script>
- Rufen Sie die exportToExcel Methode auf, um Daten aus dem Gantt-Diagramm zu exportieren:
<input value="Export to Excel" type="button" onclick='gantt.exportToExcel()'/>
<script>
gantt.init("gantt_here");
gantt.parse(demo_tasks);
</script>
Related sample: Export data : MS Project, PrimaveraP6, Excel & iCal
Related sample: Export data: store online
Parameter der exportToExcel-Methode
Die exportToExcel()-Methode nimmt als Parameter ein Objekt mit mehreren Eigenschaften (alle Eigenschaften optional):
- name - (string) legt den Namen der Ausgabedatei mit der Erweiterung '.xlsx' fest
- columns - (array) ermöglicht die Konfiguration der Spalten des Output-Excel-Blatts. Die Eigenschaften der Spaltenobjekte sind:
- 'id' - (string,number) eine Eigenschaft des Events, die der Spalte zugeordnet wird
- 'header' - (string) der Spaltenkopf
- 'width' - (number) die Spaltenbreite in Pixeln
- 'type' - (string) der Spaltentyp
- server - (string) setzt den API-Endpunkt für die Anfrage. Kann mit der lokalen Installation des Exportdienstes verwendet werden. Der Standardwert ist
https://export.dhtmlx.com/gantt - callback - (function) Falls Sie eine URL zum Herunterladen einer generierten XLSX-Datei erhalten möchten, kann die callback-Eigenschaft verwendet werden. Sie erhält ein JSON-Objekt mit der Eigenschaft url
- visual - (boolean) fügt dem exportierten Excel-Dokument die Timeline-Grafik hinzu. Standardwert: false
- cellColors - (boolean) wenn auf true gesetzt, erhalten die Zellen des exportierten Dokuments die Farben, die durch die timeline_cell_class-Vorlage definiert sind; die Eigenschaften color und background-color werden exportiert
- data - (object) legt eine benutzerdefinierte Datenquelle fest, die im output Gantt-Diagramm dargestellt wird
- date_format - (string) legt fest, in welchem Format das Datum im exportierten Excel-Dokument angezeigt wird. Eine vollständige Liste der verfügbaren Formatcodes finden Sie hier.
gantt.exportToExcel({
name: "document.xlsx",
columns:[
{ id: "text", header: "Title", width: 150 },
{ id: "start_date", header: "Start date", width: 250, type: "date" }
],
server: "https://myapp.com/myexport/gantt",
callback: (res) => {
alert(res.url);
},
visual: true,
cellColors: true,
data: { },
date_format: "dddd d, mmmm yyyy"
});
Standard-Datum-Parameter
Das Export-Modul geht davon aus, dass die Spalten start_date und end_date den Typ Date und die Spalte duration den Typ number haben.
Im Falle der Anwendung von benutzerdefinierten Vorlagen ist es notwendig, entweder einen Wert des erwarteten Typs zurückzugeben oder einen anderen Wert in der name-Eigenschaft der Spaltenkonfiguration festzulegen. Zum Beispiel:
gantt.config.columns = [
...
{ name: "start_date", align: "center", width: 100, resize: true,
editor: start_dateEditor },
{ name: "end_date", align: "center", width: 100, resize: true,
editor: end_dateEditor },
{ name: "duration_formatted",
align: "center", width: 40, resize: true,
editor: durationEditor,
template: (task) => {
return formatter.format(task.duration_formatted);
}
},
...
];
Andernfalls werden die Gantt-Daten nicht exportiert. Check the related example.
Festlegung einer benutzerdefinierten Datenquelle zum Export
Um das Gantt-Diagramm mit einem benutzerdefinierten Datensatz zu exportieren (d. h. nicht mit den Daten, die im anfänglichen Gantt-Diagramm dargestellt werden), verwenden Sie die data-Eigenschaft im Parameter der exportToExcel-Methode:
gantt.exportToExcel({
name: "document.xlsx",
data: [
{ id: 1, text: "Project #1", start_date: "01-04-2026", duration: 18},
{ id: 2, text: "Task #1", start_date: "02-04-2026", duration: 8, parent: 1},
{ id: 3, text: "Task #2", start_date: "11-04-2026", duration: 8, parent: 1}
]
});
Beachten Sie, dass Sie keinen URL-Wert für den Parameter data angeben können, sondern nur ein Datensatz-Objekt.
Farben der Aufgaben zum Export hinzufügen
Sie können die Farben der Aufgaben in die exportierte Excel-Datei des Gantt-Diagramms aufnehmen, indem Sie den Wert der Eigenschaft visual auf "base-colors" setzen:
gantt.exportToExcel({
visual: "base-colors",
cellColors: true
})
Related sample: Export colors of tasks
Import aus Excel
Da es keine automatische Abbildung beliebiger Spalten des Excel-Dokuments auf das Gantt-Datenmodell gibt, wandelt der Exportdienst ein Dokument in ein Array von Zeilen um, das als JSON zurückgegeben wird. Die Umwandlung des resultierenden Dokuments in die Gantt-Daten liegt in der Verantwortung der Endentwickler.
Um eine Excel-Datei zu konvertieren, müssen Sie die folgende Anfrage an den Exportdienst senden:
- Request URL -
https://export.dhtmlx.com/gantt - Request Method - POST
- Content-Type - multipart/form-data
Die Request-Parameter lauten:
- file - eine Excel-Datei
- type - "excel-parse"
- data - (optional) JSON-String mit Einstellungen
Zum Beispiel:
<form action="https://export.dhtmlx.com/gantt" method="POST"
encType="multipart/form-data">
<input type="file" name="file" />
<input type="hidden" name="type" value="excel-parse"/>
<button type="submit">Get</button>
</form>
Alternativ können Sie auch die Client-seitige API verwenden:
gantt.importFromExcel({
server: "https://export.dhtmlx.com/gantt",
data: file,
callback: (project) => {
console.log(project)
}
});
Related sample: Import Excel file
Wobei file eine Instanz von File ist, die eine Excel-Datei (xlsx) enthalten sollte.
gantt.importFromExcel erfordert HTML5 File API-Unterstützung.
Response
Die Antwort enthält ein JSON mit einem Array von Objekten:
[
{ "Name": "Task Name", "Start": "2026-04-11 10:00", "Duration": 8 },
...
]
wobei:
- Werte der ersten Zeile als Eigenschaftsnamen der importierten Objekte verwendet werden
- Jede Zeile als eigenständiges Objekt serialisiert wird
- Datumswerte im Format "%Y-%m-%d %H:%i" serialisiert werden
Import-Einstellungen
- Der Importdienst erwartet, dass die erste Zeile des importierten Blatts eine Kopfzeile mit Spaltennamen ist.
- Standardmäßig gibt der Dienst das erste Blatt des Dokuments zurück. Um ein anderes Blatt zurückzugeben, verwenden Sie den sheet-Parameter (nullbasiert)
gantt.importFromExcel({
server: "https://export.dhtmlx.com/gantt",
data: file,
sheet: 2, // dritte Blatte
callback: (rows) => {}
});
Export nach iCal
Um Daten aus dem Gantt-Diagramm in eine iCal-Zeichenfolge zu exportieren, führen Sie Folgendes aus:
- Um den Online-Exportdienst zu verwenden, aktivieren Sie das export_api-Plugin über die plugins Methode:
gantt.plugins({
export_api: true
});
- Rufen Sie die exportToICal Methode auf, um Daten aus dem Gantt-Diagramm zu exportieren:
<input value="Export to iCal" type="button" onclick='gantt.exportToICal()'/>
<script>
gantt.init("gantt_here");
gantt.parse(demo_tasks);
</script>
Related sample: Export data: MS Project, PrimaveraP6, Excel & iCal
Related sample: Export data: store online
Parameter der Export-Methode
Die exportToICal() Methode nimmt als Parameter ein Objekt mit den folgenden Eigenschaften (optional):
- server - (string) setzt den API-Endpunkt für die Anfrage. Kann mit der lokalen Installation des Exportdienstes verwendet werden. Der Standardwert ist
https://export.dhtmlx.com/gantt; - name - (string) ermöglicht die Angabe eines benutzerdefinierten Namens und einer Erweiterung für die Datei, aber die Datei wird weiterhin im iCal-Format exportiert.
gantt.exportToICal({
server:"https://myapp.com/myexport/gantt"
});