Export/Import für Excel, Export zu iCal

Die dhtmlxGantt-Bibliothek ermöglicht es Ihnen, Daten aus dem Gantt-Diagramm in Excel- und iCal-Formate zu exportieren. Sie können auch Daten aus einer Excel-Datei in Gantt importieren.

Der Exportdienst ist kostenlos, aber die resultierende Excel- oder iCal-Datei wird das Wasserzeichen der Bibliothek unter der GPL-Lizenz enthalten. Wenn Sie eine Lizenz erwerben, sind die exportierten Dateien während des gültigen Supportzeitraums (12 Monate für alle PRO-Lizenzen) wasserzeichenfrei.

Es gibt mehrere Exportdienste, die Sie auf Ihrem lokalen Rechner einrichten können, um Gantt-Diagramme nach Excel oder iCal zu exportieren. Beachten Sie, dass diese Exportdienste nicht Teil des Gantt-Pakets sind. Weitere Details zu den Nutzungsbedingungen finden Sie im relevanten Artikel.

Einschränkungen des Online-Exportdienstes

Der Exportdienst hat Beschränkungen hinsichtlich Zeit und Anfragengröße.

Zeitbeschränkungen

Wenn der Exportprozess länger als 20 Sekunden dauert, wird er gestoppt und Sie sehen diesen Fehler:

Error: Timeout trigger 20 seconds

Wenn mehrere Benutzer gleichzeitig Gantt-Diagramme exportieren, kann der Prozess länger dauern. Die Zeit, die für die Anfrage jedes Benutzers aufgewendet wird, wird jedoch individuell berechnet.

Begrenzungen der Anfragengröße

Der gemeinsame API-Endpunkt https://export.dhtmlx.com/gantt wird für alle Exportmethoden verwendet (exportToPDF, exportToPNG, exportToMSProject, etc.). Die maximale Anfragengröße beträgt 10 MB.

Für Dienste wie den MSProject und Primavera P6 Export/Import (exportToMSProject / importFromMSProject / exportToPrimaveraP6 / importFromPrimaveraP6) steht ein separater API-Endpunkt https://export.dhtmlx.com/gantt/project zur Verfügung, mit einem höheren Anfragengrößenlimit von 40 MB.

Verwendung von Exportmodulen

Wenn Sie mit großen Diagrammen arbeiten, sollten Sie ein eigenständiges Exportmodul verwenden. Dieses Modul ist kostenlos, wenn Sie eine Commercial, Enterprise oder Ultimate Lizenz besitzen. Alternativ können Sie das Modul separat erwerben.

Weitere Details zur Verwendung des Exportmoduls für PDF finden Sie hier. Dieses Modul unterstützt den Export von Daten in PDF-, PNG-, Excel- und iCal-Formate.

Export nach Excel

Um Gantt-Diagrammdaten in eine Excel-Datei zu exportieren, befolgen Sie diese Schritte:

  • Aktivieren Sie das export_api Plugin mit der plugins Methode, wenn Sie den Online-Exportdienst verwenden:
gantt.plugins({
    export_api: true
});

Für Versionen von Gantt älter als 8.0, binden Sie https://export.dhtmlx.com/gantt/api.js in Ihre Seite ein, um den Online-Exportdienst zu aktivieren, wie folgt:

<script src="codebase/dhtmlxgantt.js"></script>
<script src="https://export.dhtmlx.com/gantt/api.js"></script>

  • Verwenden Sie die exportToExcel Methode, um die Daten 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 Exportmethode

Die exportToExcel() Methode akzeptiert ein Objekt mit mehreren optionalen Eigenschaften:

  • name - (string) legt den Namen der Ausgabedatei mit der '.xlsx'-Erweiterung fest.
  • columns - (array) ermöglicht die Konfiguration der Spalten im Excel-Blatt. Jedes Spaltenobjekt beinhaltet:
    • 'id' - (string,number) ordnet einer Eigenschaft des Ereignisses zu.
    • 'header' - (string) legt den Spaltenkopf fest.
    • 'width' - (number) definiert die Spaltenbreite in Pixeln.
    • 'type' - (string) spezifiziert den Spaltentyp.
  • server - (string) legt den API-Endpunkt für die Anfrage fest, nützlich für lokale Installationen des Exportdienstes. Standard: https://export.dhtmlx.com/gantt.
  • callback - (function) ermöglicht es, die Download-URL für die generierte XLSX-Datei zu erhalten. Erhält ein JSON-Objekt mit der URL-Eigenschaft.
  • visual - (boolean) schließt das Zeitachsendiagramm in die Excel-Datei ein. Standard: false.
  • cellColors - (boolean) wendet Farben auf Zellen basierend auf der timeline_cell_class Vorlage an. Sowohl color als auch background-color Eigenschaften werden exportiert.
  • data - (object) spezifiziert eine benutzerdefinierte Datenquelle für das exportierte Gantt-Diagramm.
  • date_format - (string) legt das Datumsformat in der Excel-Datei fest. Eine vollständige Liste der Formatcodes ist hier verfügbar.

Beispiel: Aufrufen der Exportmethode mit optionalen Eigenschaften

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: function(res){
        alert(res.url);
    },
    visual:true,
    cellColors:true,
    data:{},
    date_format: "dddd d, mmmm yyyy"
});

Standard-Datumsparameter

Das Exportmodul erwartet, dass die start_date und end_date Spalten vom Typ Date sind und die duration Spalte vom Typ number.

Wenn Sie benutzerdefinierte Vorlagen verwenden, stellen Sie sicher, dass sie Werte der erwarteten Typen zurückgeben oder einen anderen Wert in der name Eigenschaft der Spaltenkonfiguration definieren. 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: function(task){             return formatter.format(task.duration_formatted);         }
    },
    ...
];

Andernfalls werden die Gantt-Daten nicht exportiert. Siehe ein verwandtes Beispiel.

Benutzerdefinierte Datenquelle für den Export

Um ein Gantt-Diagramm mit einem benutzerdefinierten Datensatz (anstelle der aktuellen Gantt-Daten) zu exportieren, verwenden Sie die data Eigenschaft in der exportToExcel Methode:

gantt.exportToExcel({   
    name:"document.xlsx", 
    data:[
        {id:1, text:"Project #1", start_date:"01-04-2020", duration:18},
        {id:2, text:"Task #1", start_date:"02-04-2020",duration:8, parent:1},
        {id:3, text:"Task #2", start_date:"11-04-2020",duration:8, parent:1}
    ]      
});

Der data Parameter akzeptiert nur ein Datenobjekt, keine URL.

Hinzufügen von Aufgabenfarben zum Export

Um Aufgabenfarben in die exportierte Excel-Datei aufzunehmen, setzen Sie die visual Eigenschaft auf "base-colors":

gantt.exportToExcel({
    visual: "base-colors",     cellColors: true
})

Related sample:  Export colors of tasks

Import aus Excel

Da der Exportdienst keine beliebigen Excel-Spalten automatisch dem Gantt-Datenmodell zuordnet, wird das Dokument in ein Array von Zeilen im JSON-Format konvertiert. Entwickler sind dafür verantwortlich, diese Daten in das Gantt-Format zu konvertieren.

Um eine Excel-Datei zu konvertieren, senden Sie eine Anfrage an den Exportdienst:

  • Anfragen-URL: https://export.dhtmlx.com/gantt
  • Anfragen-Methode: POST
  • Content-Type: multipart/form-data

Parameter:

  • file - die Excel-Datei.
  • type - "excel-parse".
  • data - (optional) JSON-String mit Einstellungen.

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 die clientseitige API verwenden:

gantt.importFromExcel({
    server:"https://export.dhtmlx.com/gantt",
    data: file,
    callback: function(project){
        console.log(project)
    }
});

Related sample:  Import Excel file

Hierbei ist file ein File Objekt, das eine Excel (xlsx) Datei enthält.

gantt.importFromExcel setzt die Unterstützung der HTML5 File API voraus.

Antwort

Die Antwort wird ein JSON-Array von Objekten sein:

[
   { "Name": "Task Name", "Start": "2018-08-11 10:00", "Duration": 8 },
   ...
]
  • Die Werte der ersten Zeile werden als Eigenschaftsnamen für die Objekte verwendet.
  • Jede Zeile wird zu einem individuellen Objekt.
  • Daten sind im Format "%Y-%m-%d %H:%i".

Importeinstellungen

  • Die erste Zeile im Excel-Blatt sollte eine Kopfzeile mit den Spaltennamen sein.
  • Standardmäßig wird das erste Blatt zurückgegeben. Um ein anderes Blatt anzugeben, verwenden Sie den sheet Parameter (nullbasierter Index).
gantt.importFromExcel({
    server:"https://export.dhtmlx.com/gantt",
    data: file,
    sheet:2, // wählt das dritte Blatt aus
    callback: function (rows) {}
});

Export zu iCal

Um Gantt-Diagrammdaten in eine iCal-Zeichenfolge zu exportieren, befolgen Sie diese Schritte:

  • Aktivieren Sie das export_api Plugin mit der plugins Methode:
gantt.plugins({
    export_api: true
});
  • Verwenden Sie die exportToICal Methode, um die Daten 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 Exportmethode

Die exportToICal() Methode akzeptiert ein Objekt mit diesen optionalen Eigenschaften:

  • server - (string) legt den API-Endpunkt für die Anfrage fest, nützlich für lokale Installationen des Exportdienstes. Standard: https://export.dhtmlx.com/gantt.
  • name - (string) ermöglicht es, einen benutzerdefinierten Dateinamen und eine Erweiterung anzugeben, aber die Datei wird immer im iCal-Format sein.

Beispiel: Aufrufen der Exportmethode mit optionalen Eigenschaften

gantt.exportToICal({
    server:"https://myapp.com/myexport/gantt"
});
Zurück nach oben