Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ability to open .mpp files (binary) #10

Open
rpbouman opened this issue Aug 20, 2014 · 8 comments
Open

Ability to open .mpp files (binary) #10

rpbouman opened this issue Aug 20, 2014 · 8 comments

Comments

@rpbouman
Copy link
Owner

Currently the open-msp-viewer can open only XML files (see http://msdn.microsoft.com/en-us/library/bb968652(v=office.12).aspx), regardless of the MS Project version.

The native format preferred by the MS Project software itself is the binary .mpp format. This issue is to

  1. see how many users would like to see the open-msp-viewer handling .mpp files directly
  2. to gather contributions (be it effort, information, money) towards realizing such a feature.

Microsoft has published the specification for a number of its binary office file formates (see http://msdn.microsoft.com/en-us/library/office/cc313105(v=office.12).aspx). Sadly, the .mpp file format is not among these, nor does there seem any plan to publish this )(see http://social.msdn.microsoft.com/Forums/en-US/fd590f09-919f-497d-a6c7-a7fc05963886/mpp-format?forum=os_binaryfile). A specification of the .mpp format would be a significant contribution required from the community to make this feature happen.

There is currently one open source library that I know of that can read .mpp files called mpxj (see http://mpxj.sourceforge.net/). This java library itself relies on apache's poi library (http://poi.apache.org/). In principle, the source code for these projects could be analyzed to prepare a specification of the .mpp file format.

So please leave a comment to explain why you would need this feature, and/or if you would like to contribute towards realizing it.

@rpbouman
Copy link
Owner Author

The MPXJ format might also be of interest since it is apparently used as exchange between primavera and MS Project. Spec is here: http://support.microsoft.com/kb/270139

@petersmello
Copy link

There are many XML issues that even MS-Project itself will open a different schedule than original after importing XML.

XML for schedules I work become very, very big, specially when we have progress measured in work hours per activity. We have XML files of over 60MB

Those are two reasons for any effort in opening MPP. I will get you more later.

Peter (skype: petersmello)

@rpbouman
Copy link
Owner Author

Peter, thanks! Yes I see mpp files becoming more and more of a target for future development.

@b-long
Copy link

b-long commented Oct 27, 2014

👍

@s7726
Copy link

s7726 commented May 27, 2018

https://kaitai.io/
https://ide.kaitai.io/

meta:
  id: compobj
  endian: le
  encoding: ASCII
seq:
  - id: unk_skip
    size: 28
  - id: av_size
    type: u4
  - id: app_version
    type: str
    size: av_size
  - id: ff_size
    type: u4
  - id: file_format
    type: str
    size: ff_size
  - id: aid_size
    type: u4
  - id: app_id
    type: str
    size: aid_size

Turns into:

{
  "unkSkip": [1, 0, 254, 255, 3, 10, 0, 0, 255, 255, 255, 255, 58, 143, 183, 116, 200, 200, 209, 17, 190, 17, 0, 192, 79, 182, 250, 241],
  "avSize": 23,
  "appVersion": "Microsoft.Project 14.0\u0000",
  "ffSize": 16,
  "fileFormat": "MSProject.MPP14\u0000",
  "aidSize": 20,
  "appId": "MSProject.Project.9\u0000"
}

Borrowing heavily from the work done by mpxj Using kaitai the format can be converted to various languages, including javascript.

mpp file is a zip containing various other files. If we can get all of those parsed we should have a start. There will definitely be some interdependence that will need to be figured out.

Source of sample mpp files (Project 2010): https://resources.oreilly.com/examples/9780735626959-files/

@rpbouman
Copy link
Owner Author

@s7726 thanks for the links. Frankly, this project has been a bit in the background for me. I will gladly accept pull requests, but I don't think there is much chance of me developing this in the near future.

@alanccw
Copy link

alanccw commented May 30, 2024

There is currently one open source library that I know of that can read .mpp files called mpxj (see http://mpxj.sourceforge.net/). This java library itself relies on apache's poi library (http://poi.apache.org/). In principle, the source code for these projects could be analyzed to prepare a specification of the .mpp file format.

Does apache's poi library (http://poi.apache.org/) has any format spec on mpp file? I try to search but cannot find any.

Since mpp is based on the MS compound format, is there any doc on which streams are included in the mpp file?

@alanccw
Copy link

alanccw commented May 30, 2024

mpp file is a zip containing various other files. If we can get all of those parsed we should have a start. There will definitely be some interdependence that will need to be figured out.

Source of sample mpp files (Project 2010): https://resources.oreilly.com/examples/9780735626959-files/

I download a sample file Guided Tour_Start.mpp and it is in MS compound file format(OLE/COM format) and is not a zip file. It contains some streams but the stream names are looks strange, such as "VarMeta", don't understand its meaning. If there are any doc explaining on this, that will be great!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants
@b-long @rpbouman @s7726 @petersmello @alanccw and others