Перейти к основному содержимому

Модуль экспорта для MS Project и Primavera P6

Этот экспортный модуль может импортировать/экспортировать файлы MS Project и Primavera. Это приложение на .NET Core, которое можно запустить внутри окружения dotnet или внутри образа Docker.

Он не включает функциональность импорта/экспорта для файлов PDF, PNG, Excel и iCal. Если вам нужна такая функциональность, следует воспользоваться соответствующим экспортным модулем или нашим онлайн-сервером.

Руководство по установке​

Перед запуском приложения необходимо установить среду .NET Core 7. Как только будете готовы, вы сможете скачать экспортный модуль MS Project в разделе Клиента на вкладке Загрузки. См. изображение ниже:

MS export module download

Есть 2 способа запуска исходного кода:

  1. Запуск из Visual Studio (только Windows)

Для этого подхода потребуется Visual Studio 2022, так как более ранние версии не поддерживают .NET Core 7. При открытии приложения нужно щелкнуть правой кнопкой мыши по Solution в правой панели и выбрать кнопку Restore NuGet packages. После этого можно запустить версии http или https.

  1. Запуск через командную строку

Этот подход одинаково работает как на Windows, так и на Linux. Нужно перейти в корневую папку приложения и выполнить следующую команду для установки пакетов:

dotnet restore

После этого нужно перейти в папку "GanttToMSProject" и выполнить следующую команду для запуска приложения:

dotnet run

Вы можете выполнить следующую команду для публикации приложения:

dotnet publish -c Release -o published

Тестирование модуля экспорта​

Есть 2 способа проверить работу модуля экспорта.

  1. С использованием тестовой страницы:
  • Откройте следующий URL: https://export.dhtmlx.com/test
  • Найдите URL модуля экспорта в выводе команды. Например:
Now listening on: http://localhost:5128
  • Нажмите на первый выпадающий список с URL и выберите custom.
  • Вставьте URL модуля экспорта.

Теперь можно экспортировать данные с помощью кнопок.

  1. С использованием сниппета:
  • Откройте следующий URL: https://snippet.dhtmlx.com/kf16k0if

  • Найдите URL модуля экспорта в выводе команды. Например:

Now listening on: http://localhost:5128
  • Добавьте URL в параметр server функции экспорта, например:
gantt.exportToMSProject({
server: "http://localhost:5128",
});

Теперь можно экспортировать данные с помощью кнопки.

Решение проблем​

Экспорт в PDF/PNG/Excel не работает​

Модуль экспорта MS Project работает только с методами gantt.exportToMSProject(), gantt.importFromMSProject(), gantt.exportToPrimaveraP6() и gantt.importFromPrimaveraP6(). Он не выполняет экспорт в PDF, PNG, Excel и iCal, то есть не будет работать, если вы вызовете

gantt.exportToPDF({server:"gantt-to-msproject-url"});

Также обратите внимание, что если вызвать gantt.exportToMSProject() без параметров, по умолчанию будет вызвана наша онлайн-служба по адресу export.dhtmlx.com. См. Как два модуля работают вместе.

Экспорт файлов MPP​

Модуль экспорта MS Project и экспорт-сервер используют библиотеку MPXJ для импорта и экспорта файлов MS Project и Primavera. К сожалению, экспортировать файлы MPP невозможно, но вы можете импортировать как XML, так и MPP файлы.

Хотя прямой экспорт в MPP не поддерживается, вы всё равно можете вернуть изменения, сделанные в Gantt, обратно в MS Project. Типичный процесс (round trip) выглядит так:

  1. Пользователь создаёт или редактирует проект в MS Project и сохраняет файл (как MPP или XML).

  2. Файл импортируется в Gantt, где данные можно просматривать или изменять.

  3. Данные Gantt экспортируются в XML-файл проекта.

  4. Полученный XML-файл импортируется обратно в исходный файл в MS Project:

    • Если в Gantt не удалялись задачи, импортируйте XML-файл с помощью опции Merge (см. снимок экрана ниже). Существующие задачи будут обновлены, а новые — добавлены.

    MS Project import wizard - Merge option

    • Если в Gantt были удалены какие-то задачи, они не будут автоматически удалены при импорте, поскольку при слиянии MS Project только обновляет и добавляет задачи. В этом случае сначала вручную выделите и удалите соответствующие задачи в MS Project, а затем импортируйте XML-файл с помощью опции Append или Merge (ниже показана опция Append).

    MS Project import wizard - Append option

По умолчанию Gantt импортирует и экспортирует только набор свойств задач/проекта по умолчанию. Чтобы передать дополнительные свойства через round trip, см. Получение свойств задач для импорта и объект tasks, описанный в разделе Настройки экспорта, для экспорта.

Импорт больших файлов​

Если хотите импортировать крупные файлы, нужно убрать лимиты размера запроса. Для этого откройте файл GanttToMSProject/Controllers/MspConversionController.cs. Там необходимо раскомментировать DisableRequestSizeLimit и следующую за ним строку.

После сохранения изменений и перезапуска сервера вы сможете импортировать крупные файлы. Было протестировано, что импорт файла размером 244 МБ требует до 4 ГБ ОЗУ, а импорт файла размером 400 МБ — около 4,7 ГБ ОЗУ.

Использование образа Docker​

Чтобы создать Docker-образ, выполните следующую команду:

docker build -t msp_export_module .

Чтобы запустить Docker-образ для тестирования, можно использовать следующую команду:

docker run -p 8080:8080 msp_export_module 

Вы сможете остановить контейнер сочетанием горячих клавиш Ctrl+C.

Если запустить Docker-образ в режиме «detached» (отсоединённом от терминала), он будет работать в фоновом режиме:

docker run -d -p 8080:8080 msp_export_module 
Need help?
Got a question about the documentation? Reach out to our technical support team for help and guidance. For custom component solutions, visit the Services page.