Presentation is loading. Please wait.

Presentation is loading. Please wait.

Learn How to Create Word and Excel Documents.  John DeVight  Herndon, Virginia  Senior Principal Software Engineer at ManTech  Telerik MVP  www.aspnetwiki.com.

Similar presentations


Presentation on theme: "Learn How to Create Word and Excel Documents.  John DeVight  Herndon, Virginia  Senior Principal Software Engineer at ManTech  Telerik MVP  www.aspnetwiki.com."— Presentation transcript:

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

5

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

46

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


Download ppt "Learn How to Create Word and Excel Documents.  John DeVight  Herndon, Virginia  Senior Principal Software Engineer at ManTech  Telerik MVP  www.aspnetwiki.com."

Similar presentations


Ads by Google