Есть ли способ автоматизировать процесс открытия файла .mpp и сохранения его в формате .csv?

Мне нужно найти способ автоматизировать процесс, когда пользователь загружает файл проекта Microsoft в уже созданное веб-приложение. Процесс должен будет в основном использовать сохранение как из проекта для сохранения в файл .csv, чтобы я мог использовать его для импорта данных в базу данных SQL (это необходимо для пользовательских отчетов, которые мы уже настроили с помощью SQL). Мне нужно автоматизировать этот процесс, потому что я буду получать тонны файлов проекта, и если процесс будет автоматизирован, пользователи смогут мгновенно увидеть результаты.

По сути, есть ли способ создать или запустить автоматизированный процесс, который сохранит эти файлы проекта в виде файлов .csv? Даже если файлы csv отформатированы неправильно, я могу найти способ обойти это, просто нужно сначала преобразовать их в файлы .csv.

Спасибо.

изменить - единственный способ, которым я мог придумать это, - это следовать инструкциям, перечисленным ниже, но тогда мне нужно было бы автоматизировать процесс, чтобы открыть файл и нажать «Сохранить», чтобы это сработало ... есть другие предложения?

http://social.technet.microsoft.com/Forums/en-US/projectprofessional2010general/thread/eea4ca15-0a0b-4c07-9989-87536b961385/

редактировать 2 - также искать способы использования Microsoft.Office.Interop.MSProject, но не найти удачи.

редактировать 3 0 теперь с помощью mpxj - единственная проблема, с которой я столкнулся, это следующее, перечисленное ниже. Преобразование их примера в vb.

Private Shared Function ToEnumerable(ByVal javaCollection As Collection) As EnumerableCollection
        Return New EnumerableCollection(javaCollection)
    End Function

ошибка связана с EnumberableCollection - Visual Studio не воспринимает его как допустимый тип - что-то я делаю неправильно или должен заменить?


person njj56    schedule 12.03.2012    source источник
comment
Класс EnumerableCollection не является частью обычной библиотеки mpxj. Вам нужно будет создать vb-версию класса EnumerableCollection в вашем vb-проекте. Поэтому добавьте в свой проект файл EnumerableCollection.vb, а затем преобразуйте/скопируйте в него код из файла cs.   -  person patmortech    schedule 14.03.2012


Ответы (1)


Если вы не хотите использовать сам MS Project для извлечения данных из файлов проекта, вы можете рассмотреть возможность использования библиотеки MPXJ. Это позволит вам написать простую утилиту для открытия предоставленных вам файлов MPP, извлечения интересующих вас элементов данных и записи их непосредственно в вашу базу данных (или в промежуточный файл CSV, если требуется). MPXJ поставляется в вариантах Java и .Net, так что вы можете использовать предпочитаемый язык для выполнения работы.

Джон

p.s. Отказ от ответственности: я поддерживаю MPXJ

person Jon Iles    schedule 13.03.2012
comment
Я играл с MPXJ, чтобы попытаться сделать это. Знаете ли вы какие-нибудь хорошие примеры .net, размещенные в Интернете? Это было бы очень полезно, чтобы объяснить процесс моей команде. Спасибо. - person njj56; 13.03.2012
comment
В дистрибутиве MPXJ вы найдете папку src.net, содержащую несколько простых примеров использования API. Пример MpxjQuery, вероятно, наиболее актуален для вас. Я пытаюсь улучшить документацию и примеры, поэтому, если вам нужно что-то конкретное, что не описано, дайте мне знать, и я соберу для вас код. - person Jon Iles; 13.03.2012
comment
Спасибо за ваш быстрый ответ. Я посмотрю на это. - person njj56; 13.03.2012
comment
Я вижу, что все примеры на С# - есть ли какие-нибудь примеры vb? - person njj56; 13.03.2012
comment
На данный момент нет, хотя я, вероятно, мог бы стряхнуть пыль со своего VB.net и создать что-нибудь! Однако механика использования API не будет сильно различаться между языками. - person Jon Iles; 13.03.2012
comment
Спасибо. В частности, я ищу способ vb для чтения файла, я могу конвертировать остальное сам, но сначала у меня возникают проблемы с чтением. - person njj56; 13.03.2012
comment
Я думаю, что смог конвертировать достаточно, я дам вам знать о любых проблемах. Еще раз спасибо за вашу быструю помощь - person njj56; 13.03.2012
comment
единственные проблемы, с которыми я сталкиваюсь, - это следующая вложенная частная общая функция ToEnumerable (ByVal javaCollection As Collection) As EnumerableCollection Return New EnumerableCollection (javaCollection) Конечная функция выглядит так, как будто enumberablecollection не является допустимым типом - есть ли что-то для vb, чтобы заменить это или am я делаю что-то не так? - только что заметил, что это не гладкое форматирование, а преобразование оригинала из примера запроса. - person njj56; 13.03.2012
comment
EnumerableCollection — это класс, который предоставляется вместе с образцом кода MpxjQuery.cs в дистрибутиве. Он просто предоставляет простой метод сопоставления типов коллекций Java с формой, которую легко использовать из языка .Net. - person Jon Iles; 14.03.2012
comment
Документация по API находится здесь: mpxj.sourceforge.net/apidocs/index.html, конкретно для объекта Task документация находится здесь: mpxj.sourceforge.net /apidocs/net/sf/mpxj/Task.html. - person Jon Iles; 14.03.2012