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

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

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

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

Перед запуском приложения убедитесь, что установлен .NET Core 7 environment. После установки вы можете скачать модуль экспорта MSP в Личном кабинете на вкладке Downloads. Вот скриншот для примера:

MS export module download

Существует два способа запуска исходного кода:

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

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

2. Запуск из командной строки

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

dotnet restore

Далее перейдите в папку "GanttToMSProject" и запустите приложение командой:

dotnet run

Для публикации приложения используйте команду:

dotnet publish -c Release -o published

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

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

1. Через тестовую страницу:

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

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

2. Через сниппет:

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

Теперь экспорт данных по кнопке будет работать.

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

Не работает экспорт в PDF/PNG/Excel

Модуль экспорта MSP поддерживает только методы gantt.exportToMSProject и exportToPrimaveraP6. Он не работает с такими вызовами, как:

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

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

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

Модуль экспорта MSP и сервер используют библиотеку MPXJ для импорта и экспорта файлов MSP и Primavera. В настоящее время экспорт файлов MPP не поддерживается, но импорт возможен как для XML, так и для MPP файлов. Подробнее можно узнать здесь.

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

Для импорта больших файлов необходимо снять ограничения на размер запроса. Откройте файл GanttToMSProject/Controllers/MspConversionController.cs и раскомментируйте атрибут DisableRequestSizeLimit и строку после него.

После сохранения и перезапуска сервера импорт больших файлов должен заработать. Тесты показывают, что импорт файла размером 244Mb может потребовать до 4Gb оперативной памяти.

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

Для сборки docker-образа выполните:

docker build -t msp_export_module

Для тестирования запустите docker-образ командой:

docker run -p 65163:80 msp_export_module

Остановить контейнер можно с помощью Ctrl+C.

Запуск docker-образа в фоновом режиме осуществляется так:

docker run -p 65163:80 msp_export_module
К началу