compare openxml files - c#

I'm developping a tool to manage some documents with versioncontrol. I have a windows client who is comparing 2 documents (previous version with current version) to see the differences between both documents. That is working fine (i'm using the interop dll's of microsoft).
I also have a web client where i want to do the same thing, but i don't want to install office on the server.
In my web client i only alow openxml files (docx, xlsx) because i can read and update versiondate in the document without having office installed.
Is there some tool where i can compare 2 openxml files with and show differences in a new document? (i already searched on it and there is some tool openxmldiff, but the results i get are some xml files and don't know how to combine them in a new document.
Any help?

You may want to take a look at OpenXml Powertools:
http://powertools.codeplex.com/
It has a DocumentComparer Class.
At least it is maybe a starting point.

The Open XML SDK 2.0 Productivity tool has a compare files option that will diff the two open xml files and show you the differences.

Related

How to read excel application version from xls (Excel97) files?

When using NPOI WorkbookFactory with a "modern" Excel file (*.xlsx) it produces an XSSFWorkbook, which contains the Excel-version:
xssfWorkbook.GetProperties().ExtendedProperties.AppVersion
This returns the Excel version number, e.g. "16.0300".
Is there a way to get this information for a HSSFWorkbook?
BTW: The name of the application is available in both classes:
hssfWorkbook.SummaryInformation.ApplicationName
xssfWorkbook.GetProperties().ExtendedProperties.Application
For MS Excel, this is "Microsoft Excel" in both cases.
But I couldn't find any kind of version information for HSSF.
Usecase: I get a lot of files from different sources and for support questions, it would be very helpful to know the Excel version a particular source uses. As you can also save a .xlsx as .xls, the BIFF version alone would not be of much help.

Emending PDF files into OpenXML WordprocessingML

I am strugling with Open XML SDK and embedding pdf files into a docx file.
I do not want to use automation
I am able to create *.bin files from everything except from *.pdf (see this question)
Anyone has experience with this? From what I've gathered you must create a *.bin file in order to embedd any file into Word *.docx document (except images). Is that correct?
If you can't find a pure C# solution, you could consider the commercial product docx4j OLE Helper IKVM'd.
Disclosure: I wrote it.
The reason for pdf not working was in fact in acrobat reader.
When Ive installed older version (or did not have AR installed at all), it started to work.

CookComputing.XmlRpcV2.dll Direct download?

I started using a 3rd party API that depends on XML-RPC.NET using CookComputing.XmlRpc; I can download the source files but there is not an actual "XmlRpcV2.dll" file anywhere in the zip.
It looks like you are supposed to build it, but when I open the src project in MS Visual C# EXPRESS and do the conversion wizard, then try to build it I am getting 842 build errors about not being able to find types or namespaces for the following: NUnit, TestFixture, TextFixtureAttribute, Test, etc ...
Does anyone know where I can download the "XmlRpcV2.dll" file so that I can simply drop it into my C# project and start using it? I can't seem to find a direct download of the compiled dll anywhere online. Is it perhaps used in other downloadable projects somewhere?
I downloaded version 2.5.0
Any help appreciated.
This is a problem if you're using Windows Explorer to unzip the distribution file (Explorer hides the dlls). The zip file structure will be changed in version 3.0 onwards to avoid prevent this from happening.
Perhaps the best way these days to add XML-RPC.NET to a project is to use NuGet.
Open the bin directory in the download - you should see CookComputing.XmlRpcV2.dll. This is what you want.
I assume you obtained the download from here: http://www.xml-rpc.net/download.html

Open Office assembly folder

I googled "Open Office C#" and found a commonly reoccurring tutorial: http://www.opendocument4all.com/download/OpenOffice.net.pdf
The trouble is this portion (snippet from pdf):
Change from the Visual Studio window to a Explorer window. Move to the
CLI assemblies folder. You will find them in your OpenOffice program
installation path in the folder named “assembly”. In this folder you
should see the following .net assemblies.
I do not have this "assembly" folder. I navigated to:
C:\Program Files (x86)\OpenOffice.org 3
It simply is not there. I have to create reports using C#.
As per comments above from the OP the goal is to create DOC or DOCX:
For creating DOCX there is a FREE option (OpenXML from MS) available...
For creating the older DOC format (among lots of other things there is for example Aspose.Words (commercial - just a happy customer, not affilliated).
EDIT - as per comment:
All above options work independently of Word (i.e. don't need Office present/installed on the machine).
I'm not sure Yahia understood what you were asking...
As, I had the same issue (I think), I thought I would share the solution I found:
In version(s) 3.x+ the cli_* dlls are placed in the GAC and (afak) inaccessible from a VisualStudio project. You have to extract them from the openofficeorg1.cab file (using RAR, WinZip, 7z, whatever).
Here is a link that goes into more detail covering the topic:
http://blog.nkadesign.com/2008/net-working-with-openoffice-3/
BTW, when I did this (successfully), I found 6 such cli_* dlls.
It's worth mentioning that when I came across this tidbit, I had already deleted the initial installation folder that was created during the setup, so I had to uninstal OpenOffice and then reinstall to get that folder back. After that it was easy.
Hope this was of some help.

Is there any Open source Library to generate and edit .xls and .ppt file?

My task is to extract information from ppt file and compare with another ppt file. I have to use windows platform so i used excel and powerpoint's COM object.
After developing and testing the code in my computer when i exported the file into another computer it just failed. I started to debug in that file, and surprisingly debug was successful from first to last but as soon as click on the executable it fails.
I am totally *ucked up now cause inspite of updating excel dll files into those computers (which will serve the com support) it's not working. In every pc it gives different error message. I don't wanna work COM object anymore. It *ucks.
Can anyone suggest me any open source alternative in which i can read and extract information from Excel and Powerpoint files (both 2003 and 2007 format) ???
My preferred language is c# ........I got an paid solution (aspose) but i don't wanna go for that.
Any help will be appreciated. Just suggest me how can i deal with office files assuming ms office is not installed in my computer.
NPOI works well for Excel; I only know to use the built in, MS object library for PPT files.

Categories