-
Notifications
You must be signed in to change notification settings - Fork 8
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
Comments
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 |
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) |
Peter, thanks! Yes I see mpp files becoming more and more of a target for future development. |
👍 |
https://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/ |
@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. |
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? |
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! |
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
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.
The text was updated successfully, but these errors were encountered: