OpenXML
Back to TOCAll TopicsCondensed TOC
IS29500 / Ecma376
- Video of use of Document Generation Example
- Release of V1 of Simple DOCX Generation System
- Getting Started with Open XML PowerTools Markup Simplifier
- Changing the Schema for this Open XML Document Generation System
- Updating Data for an Embedded Chart in an Open XML WordprocessingML Document
- Release of V2 of Doc Gen System: XPath in Content Controls
- Update Data behind an embedded Chart in an Open XML WordprocessingML Document
- How to Solve Open XML Developer Problems
- How to Create Protected Spreadsheets with Locked and Unlocked Cells
- Change the Schema for Simple Free Doc Generation System
- Open XML Markup Simplifier Application makes it easier to research WordprocessingML
- Open XML Markup Simplifier Application makes it easier to research WordprocessingML
- In-Depth Exploration of WordprocessingML Fields
- In-Depth Exploration of WordprocessingML Fields – Part 2
- Screen-cast: Exploring Margins in Open XML WordprocessingML Documents
- Exploring Margins in Open XML WordprocessingML Documents
- Using XML DOM to Detect Tracked Revisions in an Open XML WordprocessingML Document
- Search and Replace Text in an Open XML WordprocessingML Document
- Exploring Table Markup in Open XML SpreadsheetML
- Open XML Presentation Generation using a Template Presentation
- Introduction to DocumentBuilder 2.0 – Screen-Cast 1 of 3
- Introduction to DocumentBuilder 2.0 – Screen-Cast 2 of 3
- Introduction to DocumentBuilder 2.0 – Screen-Cast 3 of 3
- Query Open XML Spreadsheets in VB.NET using LINQ
- Introducing TextReplacer: A New Class for PowerTools for Open XML
- Exploring Tables-of-Contents in Open XML WordprocessingML Documents
- Exploring Tables-of-Contents in Open XML WordprocessingML Documents (Part 2)
- Exploring Tables-of-Contents in Open XML WordprocessingML Documents (Part 3)
- Remove Speaker Notes from an Open XML Presentation
- Short and Sweet Intro to DocumentBuilder 2.0
- What is the glossary document used for?
- Adding/Updating the TOC in OpenXML WordprocessingML Documents (4th Screen-cast
- Updating the TOC in a WordprocessingML Document using an AutoOpen Macro
- How to Retrieve the Text of a Bookmark from an OpenXML WordprocessingML Document
- Replacing Text of a Bookmark in an OpenXML WordprocessingML Document
- Advanced use of DocumentBuilder 2.0
- Use the Open XML Package Editor together with Word to Research Markup
- Custom XML Parts and Content Controls
- Exploring the Set-OpenXmlString CMDLET in PowerTools for Open XML 2.2
- Getting Started with Open XML Development
- Getting Started with Open XML Development – Part II Tools
- Merge Comments from Multiple OpenXML WordprocessingML Documents into a Single Document
- Split-OpenXmlDocument cmdlet in PowerTools for Open XML
- Exploring the Markup for Bibliographies in OpenXML WordprocessingML
- Screen-Cast: Functional Programming Utility Methods and Classes for Open XML
- Screen-Cast: Sections, Headers, and Footers
- Screen-Cast: Write Simpler SpreadsheetML when Generating Spreadsheets
- Open XML Specific Utility Methods and Classes in PowerTools for Open XML
- Displaying an Open XML WordprocessingML Document in a Web Browser Control in Windows Forms
First version of this document generation system that is driven by C# code that you write in content controls in a Word document. As an intro, he has recorded a small screen-cast that shows the doc gen system in action. (Article,Video)
This is a preliminary version of a simple DOCX generation system, which you can download, unzip, and try. This article lists two screen casts, first 90 second screen-cast shows how to run the doc gen system after you download and unzip the zip file.The second 2 1/2 minute video shows using the document generation system at scale. It shows generating 3000 documents in under a minute. (Article,Video)
In PowerTools, in the HtmlConverter project, there is a class called MarkupSimplifier, which can remove proofing errors. In addition, it can simplify WordprocessingML markup in a variety of ways, including removal of comments, content controls, and etc.
Here is a small screen-cast that shows the use of MarkupSimplifier. This screen-cast uses Open XML Package Editor Power Tool for Visual Studio 2010. (Article,Video)
Here is a small screen-cast that shows the use of MarkupSimplifier. This screen-cast uses Open XML Package Editor Power Tool for Visual Studio 2010. (Article,Video)
In the following screen cast shows the process of adjusting the XML data that drives the document generation system, as well as adjusting the template document to use that data. (Article,Video)
Embedding charts in a word-processing document is a good way to put together documents that display graphical data. When you embed a chart in a document, an Open XML SpreadsheetML workbook is stored as an embedded part in the WordprocessingML document. The spreadsheet contains the data behind the chart. When you maintain that data, Word starts Excel, opening that embedded spreadsheet. (Video)
In this post, I release V2 of this simple document generation example. I provide a 2-minute screen-cast that shows the document generation process, generating 3000 documents in less than 30 seconds. (Article,Video)
11 minute video that walks through the process of embedding a chart in a word-processing document, and then programmatically updating that data so that the chart reflects the new data. (Article,Video)
This screen-cast shows the general approach that I use to solve Open XML developer problems. The general gist of the approach is that I create two documents, one without the feature of interest, and one with. I then use the Open XML SDK productivity tool to compare the two and find out the differences. I then use the Open XML Package Editor Power Tool for Visual Studio 2010 to examine the markup, and I use the PDF form of the ECMA 376 Second Edition Part 1 to research the markup. (Video)
7-minute video that shows markup related to protected sheets with locked and unlocked cells. (Article,Video)
Three minute screen-cast that demonstrates changing the schema for simple document generation system that you configure by placing XPath expressions in content controls. (Article,Video)
This article describes WinForms Application that makes it easier to research OpenXML markup, by creating documents, altering documents, and then comparing the two documents. The MarkupSimplifier class (which is part of the PowerTools for Open XML project) can help, but as downloaded from CodePlex it is simply a class. (Article,Video)
Sometimes when researching and examining Open XML WordprocessingML markup, extraneous markup that is not relevant to the issue at hand gets in the way of seeing what is going on. If you are researching markup by creating documents, altering documents, and then comparing the two documents, as detailed in How to Solve Open XML Developer Problems, your research process is made significantly easier by simplifying the markup before comparing. (Video)
First video in a two-part series that explains how field markup works. (Article,Video)
See how to use a MarkupSimplifier utility program to make field markup more understandable. In walk through two cases where fields can be embedded in other fields. (Article,Video)
This blog has recorded short screen-cast that explores some approaches to setting margins in a word-processing document. It shows setting margins for cells, paragraphs, and sections. (Article,Video)
Article has a short screen-cast that shows the markup for various ways of setting margins – for cells, paragraphs, and sections. In addition, the video shows general approach for researching Open XML markup. (Article,Video)
Using XML DOM to Detect Tracked Revisions in an Open XML WordprocessingML Document (Article,Video)
Search and Replace Text in an Open XML WordprocessingML Document (Article,Video)
Tables are a convenient and useful feature of Open XML SpreadsheetML. This post explores table markup, and links to a screen-cast that shows how to create a table programmatically
(Video)
(Video)
Article discusses an approach of creating an Open XML template presentation that you can use to generate multiple presentations from data. (Article,Video)
This post contains the first of three screen-casts that introduces DocumentBuilder 2.0, talks about interrelated markup, and explores how DocumentBuilder solves developer issues with regards to interrelated markup. While this screen-cast is a bit long (20 minutes), it will be important for developers using DocumentBuilder who want to know how DocumentBuilder works. (Video)
This screen-cast builds on the previous screen-cast where I walk through the process of transferring comments from multiple source documents into a destination document. In this screen-cast, I insert images into the comments. This introduces some complexity – the comments part has a relationship to an image part. (Video)
This screen-cast builds on the previous two screen-casts where I walk through the process of transferring comments from multiple source documents into a destination document. In this final screen-cast in the series, I walk through some of the code in DocumentBuilder 2.0 – I explain how the code is data-driven to make it more robust, and discuss the structure of the code and how DocumentBuilder 2.0 works. (Video)
When working with SpreadsheetML, one of the most common needs is to retrieve the data from a worksheet or a table in as easy a fashion as possible. There has been a fair amount written for C# developers to do this, but not nearly as much for VB.NET. (Video)
This code to search-and-replace in an Open XML WordprocessingML document uses LINQ to XML to implement a functional transform. (Video)
Many Open XML developers need to generate documents, and then generate and insert an updated table-of-content for the document. TOC’s in Open XML are not hard, but they require a bit of explanation. This blog post introduces the first of several screen-casts around Open XML WordprocessingML TOCs. (Video)
In this screen-cast, I discuss a bit more about the markup, and then walk through some example code that is part of the PowerTools for Open XML project. The example code shows how to insert a TOC at a desired point in a document, and then set the element. Then, when the user next opens that document, Word will present them with the option to repaginate and update the TOC. (Video)
In this screen-cast, I show how you can use Word Automation to open and save the document, thereby causing all fields to be updated, including the TOC. (Video)
When sending a presentation to customers or others outside of your organization, you often want to remove speaker notes. It is easy enough to use PowerPoint automation to remove the speaker notes, but if you are processing presentations server-side, you probably don’t want to rely on automation to accomplish this task. (Video)
This is a short screen-cast that explains what DocumentBuilder 2.0 is all about, in less than seven minutes. (Video)
The glossary part is used for the placeholder text for content controls. In DOTX, it is used for the content for quick parts. This 3 minute video demonstrates these two uses. It also shows a little trick you can do with content controls and the glossary part. (Video)
Shows how to use Word Automation Services to repaginate a document and update the table-of-contents. (Video)
In the screen-cast that I present in this post, I show how you can add a TOC using the Open XML SDK, and then modify the normal.dotx, adding a macro, so that whenever you open a document that contains a TOC, Word repaginates the document and updates the TOC. (Video)
Sometimes developers use bookmarks to delineate text in an OpenXML WordprocessingML document. Then, as part of a larger system, they want to retrieve the text of that bookmark to process in some fashion. (Video)
In a previous screen-cast, I showed how to retrieve the text of an OpenXML WordprocessingML document. In this post and screen-cast, I introduce some code that enables you to replace the text of a bookmark. (Video)
The default approach to working with DocumentBuilder 2.0 enables you to take bits and pieces of multiple documents and assemble them together into a new document. However, there is an interesting scenario that this approach does not handle. You may want to import a document into a cell in a table, into a text box, or into a content control. You can do this with DocumentBuilder 2.0. This video shows how. (Video)
A question was recently posed to me – what is the best way to look at markup and the rendering of the markup simultaneously. This is important, for instance, when you are experimenting with markup and determining the exact markup that you want to generate. (Video)
Using custom XML parts and content controls, we can create smarter documents that provide needed functionality for users. Content controls and custom XML parts enable us to integrate business data with content in a document. In addition, content controls can be used to delineate data or content in a document. (Video)
The Set-OpenXmlString cmdlet enables interesting functionality – you can do a search-and-replace of content without automating Word, and you can search-and-replace in many documents at once. The Set-OpenXmlString can search-and-replace in both WordprocessingML documents and PresentationML documents. (Video)
This is the first in a series of screen-casts that are specifically for a developer starting development with Open XML for the first time. If you are starting out in Open XML development, watch this first. (Video)
In this screen-cast, I introduce the three most important tools that you will want to be familiar with: 1) Open XML Package Editor Power Tool for Visual Studio, 2) Open XML SDK 2.0 Productivity Tool, 3) PowerTools for Open XML. (Video)
Introduces code that shows how to merge comments from multiple WordprocessingML documents into a single document. (Video)
In document processing parlance, shredding a document is the process of dividing a source document according to certain rules, and creating a number of documents from the source document. This is useful, for instance, when you have a huge document, and you want to divide it into multiple documents to hand off to different authors or editors. Then, after all edits have been completed, you can merge the various parts back into a complete document. (Video)
This screen-cast walks through bibliography markup. Bibliographies use custom XML parts, so in addition to showing the field markup for citations and the generated bibliography, the screen-cast discusses the mechanism by which you can determine the purpose of any particular custom XML part. (Video)
In the process of developing the PowerTools for Open XML, over the years, I have developed some needed core functionality and utility methods, particularly for writing LINQ to XML code that queries and transforms Open XML documents. (Video)
When generating documents, you sometimes will want to create documents with multiple sections, so that you can control page layout separately for each section. In addition, you sometimes will want to create headers and footers for each section. (Video)
This screen-cast presents a small tip that can make it easier to write code to generate SpreadsheetML. You can avoid the complications of updating the shared string table by using the idea in this tip. (Video)
Screen-cast that introduces a number of OpenXML specific utility methods and classes in PowerTools for Open XML. These classes and methods are in the PtOpenXmlUtil.cs module. (Video)
Screen-cast that shows how to convert a WordprocessingML document to XHtml and then display that XHtml in a Web Browser control in a Windows Forms application. (Video)