Opening older versions of MS documents? RRS feed

  • Question

  • I'd like to develop a utility application that can read in any version of MS Office document (Word, PowerPoint, Excel, and Project if possible) convert the data to OpenXML and process the data using the SDK for Open XML formats. Is this functionality contained solely within this SDK and .Net3.0 or are there other APIs that I would need?  Please forgive my naivete as I'm fairly green when it comes to developing with MS office APIs.  If there are other forums that you could point me to where I might find this information, that would be good as well.


    Thanks in advance.


    - Kevin

    Thursday, June 14, 2007 2:42 PM

All replies

  • Hi Kevin,


          Well, you can build some application that will verify the specified directory and will look for binary files like (.doc, .ppt...) and if found your application will basically convert this files to the new file format, there's a lot of conversions possibilities (you can set your application to open the choosed files with the Office 2007 an save it as an Open XML file, you can work with binary files directly). You can youse the WinFX API's to build this application, .NET Framework 3.0 and the Open XML SDK. There's some sites that explain this conversions, there's walthrough and whitepapers on XML in Office developer center.

  - There's a lot of articles that describe better this convertions and some type of applications.


    PS: if you want i can send you one application that i developed ( it's a converter). Send me an e-mail :


    best regards


    Daniel Campos - Microsoft Innovation Center (Brazil)



    Thursday, June 14, 2007 5:52 PM
  • Daniel -


    Thanks for the reply.  Any code you could send me would be much appreciated (  Thank you.


    Regarding the file conversion, I realize that there's already a conversion utility - OFC.exe - but I'd like to have more control.  My intention is to build a server-side application that, once provided with a file, will open the MS office document, convert to XML, and apply XSLT translators to extract certain information and build other XML representations.


    - Kevin

    Thursday, June 14, 2007 6:23 PM
  • Kevin,


    I think you will want to just convert the files to Open XML, then apply your translator. Basically a two step process.  Use OFC, then go back through the files and apply the transforms.  Just to be clear, the Open XML API will not assist in opening binary format files.  (It has no knowledge of these formats). 

    Thursday, June 14, 2007 8:40 PM
  • Kevin -


    Thanks for your input.  I think that launching the OFC utility programatically on a file-by-file basis will be too awkward for my application.


    Regarding opening the binary files, do you know which MS dev. interface I can use to do this?  Also, once this is done, can the same objects be used by the OpenXML library?  I plan on downloading/purchasing whatever tools/libraries I need to do the job although I want to make sure that I get the right ones.


    Thanks again.


    - Kevin

    Thursday, June 14, 2007 9:09 PM
  • We don't have a specific dev interface for opening the binary files directly, you would need to use the Object Model for the particular application, open the files, then save them as Open XML.  Which isn't supported in a "headless" or server environment.  And is what the OFC can do. 

    There are third-party tools that will open and manupulate binary files, but none that convert them from binary to Open XML that I am aware of.


    Thursday, June 14, 2007 10:58 PM
  • One way to convert the binary formats to OpenXml would be to use the free translators from the SourceForge 2xtranslator project. Check it out at

    Or you could use the command line converters coming with the Compatibility Pack. They allow you to convert without using COM automation, which is very painful in a non-interactive environment. The usage is described at

    • Proposed as answer by mrdivo Wednesday, November 26, 2008 12:37 AM
    Wednesday, November 26, 2008 12:37 AM