In addition to posting my own content, I will from time to time post links to the great new Open XML developer content posted by a few of my colleagues. I took a look back to January of this year and there has been amazingly useful content posted, here is a summary of a few of my favorites. I hope you appreciate the quality of this content! This content just doesn’t exist out there yet; and it is great to see these people dedicating time to get us solid, useful content. They are setting the bar pretty high for the rest of us ... Thanks! (pun intended, chuckles)

Fraunhofer Fokus – IS29500-Validator and Test-Library. Open XML Developer announced this week that Microsoft has partnered with Fraunhofer Fokus (Fraunhofer) on a project that will test the validity of IS29500 documents. As part of the project Fraunhofer will start a community effort to build an Open Source document validator and test library. You can expect to see a lot more published here on my blog and at Fraunhofer’s site about this project as it gets started.

Generating a Product Catalog as a Word Document. Brian Jones and Zeyad Rajabi have posted an article which shows how to build a solution that is able to easily generate a product catalog as a Word document from a database. They use the Open XML SDK 2.0 and build upon previous articles, and this approach works in both client and server environments; this is definitely a good read.

Creating Documents by Using the Open XML Format SDK 2.0. MSDN (Erika Ehrli) has published a three part article where Zeyad Rajabi and Frank Rice break down in very easy terms how to create wordprocessingML, presentationML and spreadsheetML documents. Part 1, starts the series by introducing the Open XML SDK 2.0 CTP, showing how the packaging conventions work with the document parts and showing some sample code to create a simple document. Part 2 shows how to create a SpreadsheetML document by building a chart from a data source to create a sales order. Part 3 explores creating a PresentationML document, with roll-up information from Part 2. This is the most comprehensive article series on Open XML SDK development yet, you should seriously take the time to walk through each part.

Equality Semantics of LINQ to XML Trees. In this post, you will learn why it is important to be able to compare two XML trees for equivalence and how to use Linq to do just that. Eric White uses XSD to validate normalized XML trees and provide differential updates of one tree to the other. Eric explains the issues with normalization and provides excellent guidance on how to handle Xnames, and Xattributes.

Removing Comments from a Wordprocessing Document. Zeyad Rajabi explains on Brian Jones blog how to sanitize a document in order to remove personally identifiable information. Zeyad shows how to programmatically remove the types of personally identifiable information similar to what the Document Inspector feature in Office 2007 does.

How to Copy a Worksheet within a Workbook. Based on feedback from blog readers, Zeyad creates an example of how to safely copy a worksheet between different workbooks. In this post, Zeyad lists the following steps:

  1. Open up the Spreadsheet document via the Open XML SDK
  2. Access the main workbook part, which will give us access to a bunch of related parts, like the different worksheets
  3. Access the worksheet we want to copy
  4. Clone the found worksheet plus all related parts and add the clone plus all related parts back to the workbook
  5. Perform cleanup work to ensure that tables, views, etc. work
  6. Add the newly created worksheet reference to the sheets list in the main workbook part
  7. Save changes made to the workbook

Zeyad goes out of his way to show useful worksheet scenarios such as conditional formatting, images and tables.

Export Data to Excel. In this post, Erika Ehrli explains how to perform the common ASP.NET developer task of exporting data from a database, Web service, or third-party API to Excel. Erika provides guidance on the different ways this is possible and shows how to avoid the File Format Differ warning in Excel.

Move/Insert/Delete Paragraphs. In this post, Eric White tackles the quite daunting process of copying paragraphs that contain markup which refers to something outside of the paragraph. For example, a paragraph containing markup indicating that a comment begins inside that paragraph, but where the comment ends in a later paragraph, a different paragraph contains the markup indicating the end of the comment. Eric breaks this complex problem down and shows how to safely work with Paragraphs.

Finding Paragraphs by Style Name or Content. Eric continues working with paragraph’s now taking the time to explain methods on how to find the paragraph(s) that you want to work with. This is a logical read before or after the move/insert/delete paragraphs post. Eric shows how to use Linq to query the XML markup of the wordprocessingML to find specific style names or content and get access to that part of the document to work with it.