Table Markup in Open XML SpreadsheetML

Tables are a feature in Open XML spreadsheets that allow you to interact with data more like a database.  You can select a region and convert it to a table.  Most Excel aficionados are familiar with this feature.  It is very useful. This blog is inactive.New blog: Blog TOC  In a previous post, Using…


Removing Speaker Notes from a set of PowerPoint Presentations

Sometimes you want to prepare a set of PowerPoint presentations for distribution outside your company, and you want to remove all speaker notes from the presentations.  This is easy enough to do if you only need to scrub a few presentations, but if you have a lot, then manually scrubbing each one will be tedious. …


Determining if an Open XML WordprocessingML Document contains Tracked Changes

Processing tracked changes (sometimes known as tracked revisions) is something important that you should full understand when writing Open XML applications.  If you first accept all tracked revisions, your job of processing or transforming the WordprocessingML is made significantly easier. This blog is inactive.New blog: TOCI’ve written an MSDN article, Accepting Revisions in Open…


Retrieving the Default Style Name of an Open XML WordprocessingML Document

Whenever I write some Open XML SDK code that processes paragraphs based on style name, I need to retrieve the default style name for a document.  It is pretty easy to do, but it always takes a small bit of time to remember / lookup the element and attribute names.  Posting this code here so…


Enabling Better Transformations by Simplifying Open XML WordprocessingML Markup

When transforming Open XML markup to another XML vocabulary (such as XHtml), you can sometimes simplify the transform by first transforming the original document to a new, valid WordprocessingML document that contains much simpler markup, and therefore is easier to process.  WordprocessingML markup has many capabilities, such as revision tracking, content controls, and comments.  You…


Mastering Text in Open XML Word-Processing Documents

Processing text in Open XML word-processing documents seems deceptively simple at first – you have the body of the document, paragraphs and tables in the body, and rows and cells in tables, just like HTML, right?  Then it seems deceptively hard – you see the markup for revision tracking, numbered and bulleted lists, content controls,…


Using the SharePoint 2010 Managed Client Object Model – First Example

Using the SharePoint 2010 Managed Client Object Model – First Example This blog is inactive.New blog: TOC This is a clipboard friendly version of example #1 from Using the SharePoint 2010 Managed Client Object Model. using System;using Microsoft.SharePoint.Client;class DisplayWebTitle{    static void Main()    {        ClientContext clientContext =            new ClientContext(“”);        Web site = clientContext.Web;        clientContext.Load(site);        clientContext.ExecuteQuery();        Console.WriteLine(“Title: {0}”, site.Title);    }} Following is the same example using fully qualified names for better discoverability. using System;class DisplayWebTitle{    static void Main()    {        Microsoft.SharePoint.Client.ClientContext clientContext =            new Microsoft.SharePoint.Client.ClientContext(“”);        Microsoft.SharePoint.Client.Web site = clientContext.Web;        clientContext.Load(site);        clientContext.ExecuteQuery();        Console.WriteLine(“Title: {0}”, site.Title);    }}


Generating Documents from SharePoint Lists using Open XML Content Controls

It’s often the case that a department manager needs to regularly send a nicely formatted status report to her general manager or that a team leader needs to send a weekly status report to a number of interested parties.  To collaborate with others in their organizations, both the manager and the team leader can maintain…


Source Code Available: Complete Implementation of ‘Accept All Changes (Tracked Revisions) in Open XML Documents’

As most Open XML developers know, Word 2007 has a feature that tracks changes while you are editing a document.  These tracked revisions are recorded in Open XML markup.  It often is desirable to use the Open XML SDK to process tracked revisions and produce a new Open XML document that contains no tracked revisions. …


DescendantsAndSelfTrimmed LINQ to XML Axis Method

There are some circumstances where I need a variation on the DescendantsAndSelf axis method that allows me to specify that specific elements (and the descendants of those elements) are ‘trimmed’ from the returned collection.  One of the things that’s great about LINQ to XML is the ease with which we can create specialized axis methods…