Como você extrairia dados de um arquivo .mpp do MS Project?
-
09-06-2019 - |
Pergunta
Preciso extrair dados de um arquivo .mpp na rede e combiná-lo com outros dados de vários bancos de dados diferentes.A aplicação pode ser escrita em Perl, VB6, VB.net ou C#, mas deve ser facilmente agendada a partir de um servidor baseado em Windows.
O que você recomendaria para extrair os dados do MS Project sem intervenção do usuário?
Existe algum driver ODBC disponível para MS Project?
Existem módulos (para Perl, VB, VB.net ou C#) para abrir um .mpp e ler dados de atividades?
Solução
Eu recomendaria usar MPXJ (mpxj.sf.net) para extrair dados de arquivos do Microsoft Project.Não desanime pelo fato de que era originalmente uma biblioteca Java - a versão atual do MPXJ inclui dlls .net nativas, bem como o arquivo Java JAR original, graças à magia do IKVM.
Isenção de responsabilidade:Eu mantenho MPXJ.
Outras dicas
O MPP possui seu próprio modelo de objeto que pode ser usado para acessar dados nele contidos.A informação deverá estar disponível aqui: http://msdn.microsoft.com/en-us/office/aa905469.aspx
Para ler os dados MPP você pode usar Aspose.Tasks para .NET.Este componente é um assembly .NET normal e pode ser usado com qualquer aplicativo .NET.Ele fornece API simples para acessar elementos e dados do projeto.
Divulgação:Eu trabalho como desenvolvedor evangelista na Aspose.
Eu tenho a mesma necessidade.Aqui está o que encontrei até agora.Existe um provedor OLEDB para projetos Microsoft, até a versão MP 2007.Se pesquisar no Google, há sites suficientes citando a string de conexão, mas aqui está a citação:oconn.open "Provedor = microsoft.project.oledb.9.0;" & _ "Nome do projeto = C: Somepath myProject.mpp"
O problema com esta abordagem parece ser que você precisa instalar o MS Project no servidor.De qualquer forma, é um incômodo e uma impossibilidade para mim usar o ambiente de hospedagem.
Então você está analisando .mpp.MPXJ é uma biblioteca excelente, como sugere um comentarista acima, e posso esperar, então estou esperando que eles lancem a versão .NET.Se você estiver decidido a fazer isso, obtenha o código e veja o que eles estão fazendo.Fora isso, em seu código-fonte/comentários, não há documentação (que eu saiba) do formato.