Download presentation
Presentation is loading. Please wait.
Published bySilas Damian Whitehead Modified over 9 years ago
1
Learn How to Create Word and Excel Documents
2
John DeVight Herndon, Virginia Senior Principal Software Engineer at ManTech Telerik MVP www.aspnetwiki.com www.aspnetwiki.com John.DeVight@gmail.com John.DeVight@gmail.com
3
About the Open XML SDK Library (5 minutes) “Telerik Products” Demo (5 minutes) Getting Started (10 minutes) ◦ Installing the Open XML SDK Library ◦ Reference the Open XML SDK Library ◦ Open XML SDK 2.0 Productivity Tool Creating Word Documents (45 minutes) ◦ Using “Open XML SDK 2.0 Productivity Tool for MS Office” ◦ Using Bookmarks ◦ Using XSLT Creating Excel Documents (20 minutes) ◦ Using “Open XML SDK 2.0 Productivity Tool for MS Office” ◦ Using the SDK Directly ◦ Using SpreadsheetLight
4
“The Open XML SDK 2.0 simplifies the task of manipulating Open XML packages and the underlying Open XML schema elements within a package. The Open XML SDK 2.0 encapsulates many common tasks that developers perform on Open XML packages, so that you can perform complex operations with just a few lines of code.” 1 An Open XML Package is a zip file containing XML documents, images and other files needed to display the document in a Microsoft Office application. 1. http://msdn.microsoft.com/en-us/library/office/bb448854(v=office.14).aspx
6
Open XML SDK 2.0 for Microsoft Office Download Open XML SDK 2.0 for Microsoft Office Download Install the “Open XML SDK” from the OpenXMLSDKv2.msi installer. Install the “Open XML SDK Productivity Tool for Microsoft Office” from the OpenXMLSDKTool.msi installer.
7
In the.NET application, reference: * WordLite is a class library that I created to make it easier to work with Word Documents. ** SpreadsheetLight is freely available under the MIT License that simplifies using the Open XML SDK Library when creating Excel Documents. SpreadsheetLight AssemblyVisual Studio 2012 DocumentFormat.OpenXmlAssemblies -> Extensions WindowsBaseAssemblies -> Framework * WordLiteBrowse ** SpreadsheetLightBrowse
8
Open Microsoft Office document and generate C# code to create the same document. View the Open XML SDK Documentation.
9
Open XML SDK 2.0 Productivity Tool for MS Office Bookmarks XSLT
10
Pros ◦ All the code is generated for you. ◦ Fast and Easy. Cons ◦ The tool generates a lot of code. ◦ Every change requires the code to be updated and deployed.
11
Create and Save Word Document Open the Word Document using “Open XML SDK 2.0 Productivity Tool” In “Document Explorer”, right-click on root and select “Reflect Code”. Create console app in Visual Studio. Add references to required assemblies. Create new class for the “generated code”. Instantiate class and call CreatePackage from Main.
12
Pros ◦ Easy to create and update the “template” document without having to write code. ◦ The end user could create their own “template” documents. Cons ◦ Requires code to know about all the bookmarks.
13
Application for police departments to create Wanted Posters.
14
Create Word Document Insert Bookmark ◦ Insert -> Bookmark ◦ Give the bookmark a name ◦ Click “Add” button Making Bookmarks visible ◦ File -> Options Advanced -> Show document content Show bookmarks
15
Demo Creating Bookmarks in a Word Document
16
Header and Footer Bookmarks Create Header ◦ Insert -> Header ◦ Insert Bookmark Insert -> Bookmark Give the bookmark a name Click “Add” button ◦ Design -> Close Header and Footer
17
Open a word document with Bookmarks. Replace bookmarks with text. Replace image. Get the header and replace bookmark with text. Get the footer and replace bookmark with text.
18
using (WordDocument doc = new WordDocument()) { doc.Open(@"C:\docs\mytemplate.docx"); doc.Bookmarks["Name"].ReplaceWithText("Kendo UI"); doc.ReplaceImage("image1", @"C:\images\kendo.png"); var bookmarks = doc.Header("header2").Bookmarks; bookmarks["Header"].ReplaceWithText("My Header"); doc.Close(); buffer = doc.GetBuffer(); } Response.Buffer = true; Response.AddHeader("Content-Disposition", "attachment; filename=Product.docx"); return File(buffer, "application/vnd.openxmlformats- officedocument.wordprocessingml.document", "Product.docx");
19
Identifying the header and footer ◦ Open the document in the “Open XML SDK 2.0 Productivity Tool”. ◦ Open each header and footer and look for the bookmark. Identifying the image name (option 1) ◦ Open the document in the “Open XML SDK 2.0 Productivity Tool” ◦ Locate the image. Identifying the image name (option 2) ◦ Change the extension on the Word document to.zip ◦ Extract the contents of the.zip file and look at each image.
20
Review WordController.ProductBookmarks Controller Action.
21
Add bookmark to the document. Replace bookmark with image. doc.Bookmarks["Image"].ReplaceWithImage(@“C:\Images", “kendo.png”, "image/png"); Review WordController. ProductBookmarksAddImage Controller Action.
22
Demo Allowing End User to Create Templates
23
Pros ◦ Templates can be changed without having to recompile. ◦.NET code is simplified. ◦ Good approach when the document format does not change much over time. Cons ◦ Templates can get a bit complicated to manipulate.
24
Creating Government Contracting Documents
25
An Open XML Package is a zip file containing XML documents, images and other files needed to display the document in a Microsoft Office application.
26
Create Word Document ◦ Put “placeholders” for values ◦ Save document Create XSLT file ◦ Rename.docx to.zip ◦ Open zip file and get the word/document.xml file ◦ Rename with.xslt extension ◦ Replace: ◦ With: ◦ Add to the end of the file:
27
products.xml <product id=“…“ name=“…“ summary=“...“ image=“…“ price=“…“ overview=“..." /> XPath editor - http://qutoric.com/xmlquire/http://qutoric.com/xmlquire/ XPath examples: ◦ Select product names ◦ Select product where id = 5 ◦ Select products that have widgets
28
29
Demo Implementing XSL Template. Review WordController.ProductXslt Controller Action.
30
Adding C# Support to XSLT ◦ xmlns:msxsl="urn:schemas-microsoft-com:xslt“ ◦ xmlns:cs="urn:custom-csharp“ <![CDATA[ public string FormatPrice(int price) { return string.Format("{0:c0}", price); } ]]>
31
Demo Implementing C# Support to XSLT Review WordController.ProductXsltWithScript Controller Action.
32
Adding Header and Footer ◦ Create document with header and footer ◦ Rename.docx to.zip ◦ Open zip file and get the word/header.xml file and word/footer.xml file ◦ Rename with.xslt extension ◦ Replace: ◦ With: ◦ Add to the end of the file:
33
Demo Locating the Header and Footer Review WordController.ProductXsltWithHeaderFooter Controller Action.
34
Combining XSLT and Bookmarks Adding Image Review WordController.ProductXsltAddImage Controller Action.
35
Open XML SDK 2.0 Productivity Tool for MS Office Using the SDK Using SpreadsheetLight
36
Why? Learn how the SDK works.
37
Create and Save Excel Document Open the Excel Document using “Open XML SDK 2.0 Productivity Tool” In “Document Explorer”, right-click on root and select “Reflect Code”. Create console app in Visual Studio. Add references to required assemblies. Create new class for the “generated code”. Instantiate class and call CreatePackage from Main.
38
Code Project article: Creating basic Excel workbook with Open XML by Mika WendeliusCreating basic Excel workbook with Open XMLMika Wendelius Extended Excel.cs to: ◦ CreateWorkbook using a Stream ◦ Add additional styles for headers
39
Demo Using SDK Review ExcelController.ProductWidgetsUsingSdk Controller Action.
40
http://spreadsheetlight.com/ http://spreadsheetlight.com/ “SpreadsheetLight is an open source spreadsheet library/component for.NET Framework written in C#. It is freely available and uses the MIT License. It generates Open XML spreadsheets that are compatible with Microsoft Excel 2007/2010/2013 (and even LibreOffice Calc).”
41
Features used: ◦ Setting Document Properties ◦ Rename Worksheet ◦ Set Column Heading Styles ◦ Set Column Widths ◦ Format Currency Cells ◦ Define Formulas ◦ Create Charts ◦ Protect Worksheet
42
Demo using SpreadsheetLight Review ExcelController.ProductWidgetsSpreadsheetLight Controller Action. Review ExcelController.SalesByYear Controller Action.
43
Adding a Chart ◦ SLChart CreateChart – define the range for the data to be used. SetChartType – set the type of chart to create SetChartPosition – where the chart will appear in the worksheet SetChartStyle – style for the chart. SLDocument.InsertChart – insert the chart into the current worksheet.
44
Demo creating Chart Review ExcelController.SalesByYearWithChart Controller Action.
45
Where can I find the presentation and source code? ◦ Email me at: John.DeVight@gmail.comJohn.DeVight@gmail.com ◦ Come to the front and add your name and email address to the list. ◦ www.aspnetwiki.com. Will be posted this weekend. www.aspnetwiki.com
47
Creating MVC Extensions for the jQuery UI Library that can be used with the Razor and ASPX (WebForms) View Engines. Creating mobile application games using the “Crafty” JavaScript Gaming Engine and PhoneGap.
48
John DeVight www.aspnetwiki.com www.aspnetwiki.com John.DeVight@gmail.com John.DeVight@gmail.com
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.