Библиотека dhtmlxGantt позволяет экспортировать данные из диаграммы Ганта в форматы Excel и iCal. Вы также можете импортировать данные в Gantt из файла Excel.
Сервис экспорта бесплатный, но итоговый файл Excel или iCal будет содержать водяной знак библиотеки по лицензии GPL. Если вы приобретете лицензию, экспортированные файлы будут без водяного знака в течение действующего периода поддержки (12 месяцев для всех PRO лицензий).
Существует несколько сервисов экспорта, которые вы можете настроить на своем локальном компьютере для экспорта диаграмм Ганта в Excel или iCal. Помните, что эти сервисы экспорта не являются частью пакета Gantt. Ознакомьтесь с соответствующей статьей для получения подробной информации об условиях использования.
Сервис экспорта имеет ограничения по времени и размеру запроса.
Если процесс экспорта занимает более 20 секунд, он будет остановлен, и вы увидите следующую ошибку:
Error: Timeout trigger 20 seconds
Когда несколько пользователей экспортируют диаграммы Ганта одновременно, процесс может занять больше времени. Однако время, затраченное на запрос каждого пользователя, рассчитывается индивидуально.
Общий API-эндпоинт https://export.dhtmlx.com/gantt используется для всех методов экспорта (exportToPDF, exportToPNG, exportToMSProject и т.д.). Максимальный размер запроса составляет 10 МБ.
Для сервисов, таких как MSProject и Primavera P6 экспорт/импорт (exportToMSProject / importFromMSProject / exportToPrimaveraP6 / importFromPrimaveraP6), доступен отдельный API-эндпоинт https://export.dhtmlx.com/gantt/project, с более высоким лимитом размера запроса в 40 МБ.
Если вы работаете с большими диаграммами, рассмотрите возможность использования автономного модуля экспорта. Этот модуль бесплатен, если у вас есть Commercial, Enterprise или Ultimate лицензия. В качестве альтернативы, вы можете приобрести модуль отдельно.
Более подробную информацию о использовании модуля экспорта в PDF можно найти здесь. Этот модуль поддерживает экспорт данных в форматы PDF, PNG, Excel и iCal.
Чтобы экспортировать данные диаграммы Ганта в файл Excel, выполните следующие шаги:
gantt.plugins({
export_api: true
});
Для версий Gantt старше 8.0 включите https://export.dhtmlx.com/gantt/api.js на своей странице, чтобы активировать онлайн-сервис экспорта, как показано ниже:
<script src="codebase/dhtmlxgantt.js"></script>
<script src="https://export.dhtmlx.com/gantt/api.js"></script>
<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
Метод exportToExcel() принимает объект с несколькими необязательными свойствами:
Пример: Вызов метода экспорта с необязательными свойствами
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"
});
Модуль экспорта ожидает, что колонки start_date и end_date будут иметь тип Date, а колонка duration - тип number.
Если вы используете пользовательские шаблоны, убедитесь, что они возвращают значения ожидаемых типов или определите другое значение в свойстве name конфигурации колонки. Например:
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); }
},
...
];
Если нет, данные Gantt не будут экспортированы. См. связанный пример.
Чтобы экспортировать диаграмму Ганта с пользовательским набором данных (вместо текущих данных Gantt), используйте свойство data в методе exportToExcel:
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}
]
});
Параметр data принимает только объект данных, а не URL.
Чтобы включить цвета задач в экспортируемый файл Excel, установите свойство visual в значение "base-colors":
gantt.exportToExcel({
visual: "base-colors", cellColors: true
})
Related sample: Экспорт цветов задач
Поскольку сервис экспорта не сопоставляет произвольные колонки Excel с моделью данных Gantt автоматически, он преобразует документ в массив строк в формате JSON. Разработчики несут ответственность за преобразование этих данных в формат Gantt.
Чтобы преобразовать файл Excel, отправьте запрос на сервис экспорта:
Параметры:
Пример:
<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>
В качестве альтернативы, вы можете использовать клиентский API:
gantt.importFromExcel({
server:"https://export.dhtmlx.com/gantt",
data: file,
callback: function(project){
console.log(project)
}
});
Related sample: Import Excel file
Здесь file - объект File, содержащий файл Excel (xlsx).
gantt.importFromExcel опирается на поддержку HTML5 File API.
Ответ будет в формате JSON массива объектов:
[
{ "Name": "Task Name", "Start": "2018-08-11 10:00", "Duration": 8 },
...
]
gantt.importFromExcel({
server:"https://export.dhtmlx.com/gantt",
data: file,
sheet:2, // выбирает третий лист
callback: function (rows) {}
});
Чтобы экспортировать данные диаграммы Ганта в строку iCal, выполните следующие шаги:
gantt.plugins({
export_api: true
});
<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
Метод exportToICal() принимает объект с этими необязательными свойствами:
Пример: Вызов метода экспорта с необязательными свойствами
gantt.exportToICal({
server:"https://myapp.com/myexport/gantt"
});
К началу