Automated Processing of Open XML Documents using PowerShell
I'm very excited today to announce a new open source project, PowerTools for Open XML . Processing Open XML documents using PowerShell is a powerful approach for creating, modifying, and transforming Open XML documents. The PowerTools for Open XML are examples and guidance that show how to do this. They consist of PowerShell cmdlets, and a number of example scripts that demonstrate the use of the cmdlets. Examples include automated word processing document and spreadsheet generation, and preparing documents for distribution external to a company, including removing comments, accepting revisions, applying a uniform theme to them, and applying a watermark to them.
This blog is inactive.
New blog: EricWhite.com/blog
Blog TOCIt’s important to note that this is not a new supported Microsoft product and doesn’t necessarily represent future product direction. We think it will serve as inspiration for customers who need to create and modify Open XML documents in batches. These tools also show the power and flexibility of Powershell. They are good examples of PowerShell cmdlets.
These examples are primarily targeted at three types of users:
· Developers who need to automatically generate documents programmatically. For example, developers may need to generate word processing documents from an XML file containing customer data.
· IT professionals who often need to send reports, charts, and spreadsheets that summarize the state of their network, servers, computers, and more.
· Information workers who need to prepare documents for publication outside of their company. To present a consistent appearance of documents, information workers may want to accept all revisions in the document, remove all comments, give a consistent style to the documents, digitally sign them, add a watermark, and more.
The included example scripts show all of the above uses of the PowerTools.
The PowerTools are based on the Open XML SDK. Yesterday, the Open XML SDK 1.0 was released. This is a great step forward for Open XML developers using .NET. This is the final "go-live" Version 1, so you can deploy solutions that you build using this version. The SDK makes it more convenient to write .NET applications that create and modify open XML documents. Erika Ehrli has a great, informative, detailed blog post on this release.
Our purposes in creating the PowerTools cmdlets are twofold. First, we want to show people some of the things that are possible using Open XML. These cmdlets can serve as inspiration to people who want to expand on them. We'd love to see folks create new cmdlets that do a wide variety of interesting things. Second, we want to show the power of using Open XML in concert with PowerShell. We're not trying to create a product here; we're just providing a head start for people who want to create and modify Open XML documents using PowerShell.
These cmdlets are available now. They are released at www.CodePlex.com/PowerTools as an open source project. They are licensed under the Microsoft Public License, which gives you a lot of freedom in how you use them. You get full source code, and you can use the PowerTools in your own commercial applications. It is pretty simple to download them, build them, and use them.
(Update, July 4, 2008: This post tells how you can get the prebuilt binary install, which is much more convenient.)
These samples work with Office Open XML (Ecma 376 and IS29500) and PowerShell 1.0. They create and modify the Open XML files directly, and do not use the Office object model - they don't require an installation of the 2007 Microsoft Office system.
Technical details on the implementation of the cmdlets are available here.
Special thanks to Staff Dot Net, and Bob McClellan, who developed the PowerTools.
PowerTools 1.0 cmdlets:
Accept-OpenXmlChange |
Add-OpenXmlContent |
Add-OpenXmlDigitalSignature |
Add-OpenXmlDocumentIndex |
Add-OpenXmlDocumentTOA |
Add-OpenXmlDocumentTOC |
Add-OpenXmlDocumentTOF |
Add-OpenXmlPicture |
Export-OpenXmlSpreadsheet |
Export-OpenXmlToHtml |
Export-OpenXmlWordprocessing |
Get-OpenXmlBackground |
Get-OpenXmlComment |
Get-OpenXmlCustomXmlData |
Get-OpenXmlDigitalSignature |
Get-OpenXmlDocument |
Get-OpenXmlFooter |
Get-OpenXmlHeader |
Get-OpenXmlStyle |
Get-OpenXmlTheme |
Get-OpenXmlWatermark |
Lock-OpenXmlDocument |
Remove-OpenXmlComment |
Remove-OpenXmlDigitalSignature |
Set-OpenXmlBackground |
Set-OpenXmlContentFormat |
Set-OpenXmlContentStyle |
Set-OpenXmlCustomXmlData |
Set-OpenXmlFooter |
Set-OpenXmlHeader |
Set-OpenXmlStyle |
Set-OpenXmlTheme |
Set-OpenXmlWatermark |
Comments
Anonymous
June 11, 2008
Let’s see what the OpenXML guru’s take about it .. Here is full description from none other then …ErikaAnonymous
June 11, 2008
Open XML Format SDK – RTM , Version 1.0 Overview The 2007 Microsoft® Office system introduces a new fileAnonymous
June 11, 2008
La récente sortie du SDK Open XML devrait déjà vous permettre d’imaginer une quantité de scénarii pourAnonymous
June 11, 2008
Very cool post from Eric White that introduces a new CodePlex project to create PowerTools for OpenXMLAnonymous
June 12, 2008
One of the namespaces introduced in the .NET Framework 3.0 is System.IO.Packaging (in the WindowsBaseAnonymous
June 12, 2008
The comment has been removedAnonymous
June 12, 2008
You can script documents and spreasheets creation and proecessing on the server. A new open source project,Anonymous
June 12, 2008
The Open XML Power Tools, an open source project on Codeplex to create PowerShell cmdlets for automating...Anonymous
June 12, 2008
There is a new open source project, PowerTools for Open XML up on Codeplex .  With using  PowerShellAnonymous
June 13, 2008
Eric White just posted an amazing set of Cmdlets on CodePlex .  They allow you to use PowerShellAnonymous
June 15, 2008
CodePlex 上周發佈了一個好用工具: 使用 PowerShell 來操作 Open XML 的一個範例, 將它放置在伺服器(Server-Side)上做批次檔案的處理的一個好選擇。 更多資訊: http://www.codeplex.com/PowerToolsAnonymous
June 15, 2008
Nun gibt es ein weiteres cooles Open Source Project, die PowerTools for Open XML . Das Erzeugen, ÄndernAnonymous
June 18, 2008
Sometimes you want to generate a wordprocessing document that contains a table. I've created an XML fileAnonymous
June 19, 2008
I am a newbie to PowerShell scripting. This is probably pretty obvious to anyone who has taken a lookAnonymous
June 21, 2008
Я много раз рассказывал как хорошо использовать OpenXML в различных сценариях, гAnonymous
July 03, 2008
Staff Dot Net , a small consultancy and training company, is now providing binary builds of the PowerToolsAnonymous
September 18, 2008
Sometimes you need to create a list of all parts in a package so that you can write some generalizedAnonymous
September 19, 2008
About three months ago, I posted the PowerTools for Open XML on CodePlex. I also posted a video on installingAnonymous
November 18, 2008
[Blog Map] This post contains a detailed description of each of the PowerTools for Open XML cmdlets.Anonymous
April 10, 2009
Today, I’m pleased to announce the release of PowerTools for Open XML V1.1. PowerTools for Open XML isAnonymous
April 20, 2009
PowerTools for Open XML v1.1.1 source code is now available. PowerTools for Open XML is an open sourceAnonymous
January 12, 2015
An introduction to PowerTools for Open XML 1.0.