{"id":62,"date":"2007-11-11T15:08:16","date_gmt":"2007-11-11T13:08:16","guid":{"rendered":"http:\/\/www.mysticslayer.com\/?p=62"},"modified":"2009-05-08T15:09:31","modified_gmt":"2009-05-08T13:09:31","slug":"generating-excel-xmlspreadsheet-in-c-part-2","status":"publish","type":"post","link":"http:\/\/www.mysticslayer.com\/?p=62","title":{"rendered":"Generating Excel (XmlSpreadSheet) in C# Part 2."},"content":{"rendered":"<p>In part 1 we started to explain a couple of things in our Excel xml spreadsheet. So let\u2019s start how to explain it in code.<\/p>\n<p>First of all we need a StringBuilder. With a StringBuilder we can append all the data we want. Let\u2019s build a couple if simple functions. Everything is written in C#, because it\u2019s a common written language in .NET. So if you would like to write in <span class=\"caps\">VB.NET <\/span>you have to convert it to <span class=\"caps\">VB.N<\/span>et.<\/p>\n<p>First we start with the header of our Xml Spreadsheet:<\/p>\n<div class=\"geshi no csharp\">\n<ol>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"co1\">\/\/ We need a newline after each rule we&#8217;ve made. So this will make it in our StringBuilder.<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"kw1\">private<\/span> <span class=\"kw4\">string<\/span> _Newline <span class=\"sy0\">=<\/span> <span class=\"st0\">&#8220;<span class=\"es0\">\\n<\/span>&#8220;<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"co1\">\/\/ Returns the _NewLine<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"kw1\">protected<\/span> <span class=\"kw4\">string<\/span> NewLine<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"br0\">{<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp;get<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"br0\">{<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"kw1\">return<\/span> _NewLine;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"br0\">}<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"br0\">}<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"kw1\">protected<\/span> <span class=\"kw4\">string<\/span> StartHeader<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"br0\">{<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp;get<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"br0\">{<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; StringBuilder sb <span class=\"sy0\">=<\/span> <span class=\"kw3\">new<\/span> StringBuilder<span class=\"br0\">(<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;&lt; ?xml version=<span class=\"es0\">\\&#8221;<\/span>1.0<span class=\"es0\">\\&#8221;<\/span>?&gt;&#8221;<\/span> <span class=\"sy0\">+<\/span> NewLine<span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;&lt; ?mso-application progid=<span class=\"es0\">\\&#8221;<\/span>Excel.Sheet<span class=\"es0\">\\&#8221;<\/span>?&gt;&#8221;<\/span> <span class=\"sy0\">+<\/span> NewLine<span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;&lt;workbook xmlns=<span class=\"es0\">\\&#8221;<\/span>urn:schemas-microsoft-com:office:spreadsheet<span class=\"es0\">\\&#8221;<\/span>&#8220;<\/span> <span class=\"sy0\">+<\/span> NewLine<span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;xmlns:o=<span class=\"es0\">\\&#8221;<\/span>urn:schemas-microsoft-com:office:office<span class=\"es0\">\\&#8221;<\/span>&#8220;<\/span> <span class=\"sy0\">+<\/span> NewLine<span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;xmlns:x=<span class=\"es0\">\\&#8221;<\/span>urn:schemas-microsoft-com:office:excel<span class=\"es0\">\\&#8221;<\/span>&#8220;<\/span> <span class=\"sy0\">+<\/span> NewLine<span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;xmlns:ss=<span class=\"es0\">\\&#8221;<\/span>urn:schemas-microsoft-com:office:spreadsheet<span class=\"es0\">\\&#8221;<\/span>&#8220;<\/span> <span class=\"sy0\">+<\/span> NewLine<span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;xmlns:html=<span class=\"es0\">\\&#8221;<\/span>http:\/\/www.w3.org\/TR\/REC-html40<span class=\"es0\">\\&#8221;<\/span>&gt;&#8221;<\/span> <span class=\"sy0\">+<\/span> NewLine<span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">return<\/span> sb.<span class=\"me1\">ToString<\/span><span class=\"br0\">(<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; <span class=\"br0\">}<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"br0\">}<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"sy0\">&lt;\/<\/span>workbook<span class=\"sy0\">&gt;<\/span><\/div>\n<\/li>\n<\/ol>\n<\/div>\n<p>So we have written our first part of our spreadsheet header. Let\u2019s see what we\u2019ve got now. Ah yes. Now our DocumentProperties we can write in our stringbuilder.<\/p>\n<div class=\"geshi no csharp\">\n<ol>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"kw1\">protected<\/span> <span class=\"kw4\">string<\/span> DocumentProperties<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">{<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; get<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">{<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; StringBuilder sb <span class=\"sy0\">=<\/span> <span class=\"kw3\">new<\/span> StringBuilder<span class=\"br0\">(<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;&lt;documentproperties xmlns=<span class=\"es0\">\\&#8221;<\/span>urn:schemas-microsoft-com:office:office<span class=\"es0\">\\&#8221;<\/span>&gt;&#8221;<\/span> <span class=\"sy0\">+<\/span> NewLine<span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;&lt;author&gt;Author&lt;\/author&gt;&#8221;<\/span> <span class=\"sy0\">+<\/span> NewLine<span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;&lt;lastauthor&gt;LastAuthor&lt;\/lastauthor&gt;&#8221;<\/span> <span class=\"sy0\">+<\/span> NewLine<span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;&lt;created&gt;&#8221;<\/span> <span class=\"sy0\">+<\/span> DateTime.<span class=\"me1\">Now<\/span> <span class=\"sy0\">+<\/span> <span class=\"st0\">&#8220;&lt;\/created&gt;&#8221;<\/span> <span class=\"sy0\">+<\/span> NewLine<span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;&lt;version&gt;12.00&lt;\/version&gt;&#8221;<\/span> <span class=\"sy0\">+<\/span> NewLine<span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;&lt;\/documentproperties&gt;&#8221;<\/span> <span class=\"sy0\">+<\/span> NewLine<span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">return<\/span> sb.<span class=\"me1\">ToString<\/span><span class=\"br0\">(<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">}<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">}<\/span><\/div>\n<\/li>\n<\/ol>\n<\/div>\n<p>So we have written now our DocumentProperties. Now we can write our ExcelWorkbook properties. There are a couple of things important. Don\u2019t forget to put ProtectStructure and ProtectWindows in your ExcelWorkbook properties. These are important things we need to use.<\/p>\n<div class=\"geshi no csharp\">\n<ol>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp;<span class=\"kw1\">protected<\/span> <span class=\"kw4\">string<\/span> ExcelWorkbook<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">{<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; get<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">{<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; StringBuilder sb <span class=\"sy0\">=<\/span> <span class=\"kw3\">new<\/span> StringBuilder<span class=\"br0\">(<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;&lt;excelworkbook xmlns=<span class=\"es0\">\\&#8221;<\/span>urn:schemas-microsoft-com:office:excel<span class=\"es0\">\\&#8221;<\/span>&gt;&#8221;<\/span> <span class=\"sy0\">+<\/span> NewLine<span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;&lt;windowheight&gt;8130&lt;\/windowheight&gt;&#8221;<\/span> <span class=\"sy0\">+<\/span> NewLine<span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;&lt;windowwidth&gt;18015&lt;\/windowwidth&gt;&#8221;<\/span> <span class=\"sy0\">+<\/span> NewLine<span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;&lt;windowtopx&gt;360&lt;\/windowtopx&gt;&#8221;<\/span> <span class=\"sy0\">+<\/span> NewLine<span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;&lt;windowtopy&gt;75&lt;\/windowtopy&gt;&#8221;<\/span> <span class=\"sy0\">+<\/span> NewLine<span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;&lt;calculation&gt;ManualCalculation&lt;\/calculation&gt;&#8221;<\/span> <span class=\"sy0\">+<\/span> NewLine<span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;&lt;donotcalculatebeforesave \/&gt;&#8221;<\/span> <span class=\"sy0\">+<\/span> NewLine<span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;&lt;protectstructure&gt;False&lt;\/protectstructure&gt;&#8221;<\/span> <span class=\"sy0\">+<\/span> NewLine<span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;&lt;protectwindows&gt;False&lt;\/protectwindows&gt;&#8221;<\/span> <span class=\"sy0\">+<\/span> NewLine<span class=\"br0\">)<\/span>; <\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;&lt;\/excelworkbook&gt;&#8221;<\/span> <span class=\"sy0\">+<\/span> NewLine<span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">return<\/span> sb.<span class=\"me1\">ToString<\/span><span class=\"br0\">(<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">}<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">}<\/span><\/div>\n<\/li>\n<\/ol>\n<\/div>\n<p>We have done our first part of our document. Now we can see allready that we have done alot of work to write our header for our document. Let\u2019s start with our Styles. You can add styles in a couple of manners to your document. You can write an external document that we can add to our project. Or you can add this by code. Well like you write a stylesheet for your webpage, I wrote a styles.config to add to our project. <\/p>\n<p>You can add this in by the following code part.<\/p>\n<div class=\"geshi no csharp\">\n<ol>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"kw1\">private<\/span> <span class=\"kw4\">string<\/span> Styles<span class=\"br0\">(<\/span><span class=\"kw4\">string<\/span> filename<span class=\"br0\">)<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; <span class=\"br0\">{<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp;<span class=\"kw5\">System<\/span>.<span class=\"me1\">IO<\/span>.<span class=\"me1\">StreamReader<\/span> sr;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp;<span class=\"kw4\">string<\/span> sLine;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp;<span class=\"kw4\">string<\/span> sText <span class=\"sy0\">=<\/span> <span class=\"kw4\">string<\/span>.<span class=\"me1\">Empty<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp;sr <span class=\"sy0\">=<\/span> <span class=\"kw5\">System<\/span>.<span class=\"me1\">IO<\/span>.<span class=\"me1\">File<\/span>.<span class=\"me1\">OpenText<\/span><span class=\"br0\">(<\/span>filename<span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp;sLine <span class=\"sy0\">=<\/span> sr.<span class=\"me1\">ReadLine<\/span><span class=\"br0\">(<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp;sText <span class=\"sy0\">=<\/span> sLine;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp;<span class=\"kw1\">while<\/span><span class=\"br0\">(<\/span>sLine <span class=\"sy0\">!=<\/span> <span class=\"kw1\">null<\/span><span class=\"br0\">)<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp;<span class=\"br0\">{<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; sLine <span class=\"sy0\">=<\/span> sr.<span class=\"me1\">ReadLine<\/span><span class=\"br0\">(<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; sText <span class=\"sy0\">+=<\/span> sLine <span class=\"sy0\">+<\/span> <span class=\"st0\">&#8220;<span class=\"es0\">\\n<\/span>&#8220;<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp;<span class=\"br0\">}<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp;sr.<span class=\"me1\">Close<\/span><span class=\"br0\">(<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp;<span class=\"kw1\">return<\/span> sText;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; <span class=\"br0\">}<\/span><\/div>\n<\/li>\n<\/ol>\n<\/div>\n<p>This was the part for reading our styles.config into a StreamReader and return it as string. Well we have done the most of things now. Let\u2019s start with the main part. The main part is making the ExcelWorksheet and the table with data. In Html you can write a table like this:<\/p>\n<div class=\"geshi no csharp\">\n<ol>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"sy0\">&lt;<\/span>table<span class=\"sy0\">&gt;<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"sy0\">&lt;<\/span>tr<span class=\"sy0\">&gt;&lt;<\/span>td<span class=\"sy0\">&gt;&lt;\/<\/span>td<span class=\"sy0\">&gt;&lt;\/<\/span>tr<span class=\"sy0\">&gt;&lt;<\/span>tr<span class=\"sy0\">&gt;<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"sy0\">&lt;\/<\/span>tr<span class=\"sy0\">&gt;&lt;<\/span>tr<span class=\"sy0\">&gt;&lt;<\/span>td<span class=\"sy0\">&gt;&lt;\/<\/span>td<span class=\"sy0\">&gt;&lt;\/<\/span>tr<span class=\"sy0\">&gt;&lt;<\/span>tr<span class=\"sy0\">&gt;<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"sy0\">&lt;\/<\/span>tr<span class=\"sy0\">&gt;&lt;\/<\/span>table<span class=\"sy0\">&gt;<\/span><\/div>\n<\/li>\n<\/ol>\n<\/div>\n<p>Well the xml spreadsheet is almost the same. Let\u2019s see how to make a simple template of it.<\/p>\n<div class=\"geshi no csharp\">\n<ol>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"sy0\">&lt;<\/span>table<span class=\"sy0\">&gt;<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"sy0\">&lt;<\/span>row<span class=\"sy0\">&gt;<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"sy0\">&lt;<\/span>cell<span class=\"sy0\">&gt;&lt;<\/span>data<span class=\"sy0\">&gt;&lt;\/<\/span>data<span class=\"sy0\">&gt;&lt;\/<\/span>cell<span class=\"sy0\">&gt;<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"sy0\">&lt;<\/span>cell<span class=\"sy0\">&gt;&lt;<\/span>data<span class=\"sy0\">&gt;&lt;\/<\/span>data<span class=\"sy0\">&gt;&lt;\/<\/span>cell<span class=\"sy0\">&gt;<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"sy0\">&lt;\/<\/span>row<span class=\"sy0\">&gt;<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"sy0\">&lt;\/<\/span>table<span class=\"sy0\">&gt;<\/span><\/div>\n<\/li>\n<\/ol>\n<\/div>\n<p>There are not many differences between html and xml spreadsheet. But it\u2019s important to know that you don\u2019t forget any closing tags. In particular big documents it\u2019s a problem to find the problem. Well let\u2019s start with some simple data to put it in our document.<\/p>\n<div class=\"geshi no csharp\">\n<ol>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp;<span class=\"kw1\">protected<\/span> <span class=\"kw4\">string<\/span> _data<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">{<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; get<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">{<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; StringBuilder sb <span class=\"sy0\">=<\/span> <span class=\"kw3\">new<\/span> StringBuilder<span class=\"br0\">(<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;&lt;worksheet ss:Name=<span class=\"es0\">\\&#8221;<\/span>Sheet1<span class=\"es0\">\\&#8221;<\/span>&gt;&#8221;<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;&lt;table ss:ExpandedColumnCount=<span class=\"es0\">\\&#8221;<\/span>12<span class=\"es0\">\\&#8221;<\/span> ss:ExpandedRowCount=<span class=\"es0\">\\&#8221;<\/span>1<span class=\"es0\">\\&#8221;<\/span> x:FullColumns=<span class=\"es0\">\\&#8221;<\/span>1<span class=\"es0\">\\&#8221;<\/span> x:FullRows=<span class=\"es0\">\\&#8221;<\/span>1<span class=\"es0\">\\&#8221;<\/span> ss:DefaultRowHeight=<span class=\"es0\">\\&#8221;<\/span>15<span class=\"es0\">\\&#8221;<\/span>&gt;&#8221;<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;&lt;column ss:Index=<span class=\"es0\">\\&#8221;<\/span>2<span class=\"es0\">\\&#8221;<\/span> ss:StyleID=<span class=\"es0\">\\&#8221;<\/span>s62<span class=\"es0\">\\&#8221;<\/span> ss:AutoFitWidth=<span class=\"es0\">\\&#8221;<\/span><span class=\"es0\">\\&#8221;<\/span>\/&gt;&#8221;<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;&lt;column ss:StyleID=<span class=\"es0\">\\&#8221;<\/span>s63<span class=\"es0\">\\&#8221;<\/span> ss:Width=<span class=\"es0\">\\&#8221;<\/span>53.25<span class=\"es0\">\\&#8221;<\/span>\/&gt;&#8221;<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;&lt;column ss:StyleID=<span class=\"es0\">\\&#8221;<\/span>s65<span class=\"es0\">\\&#8221;<\/span> ss:AutoFitWidth=<span class=\"es0\">\\&#8221;<\/span><span class=\"es0\">\\&#8221;<\/span>\/&gt;&#8221;<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;&lt;column ss:StyleID=<span class=\"es0\">\\&#8221;<\/span>s66<span class=\"es0\">\\&#8221;<\/span> ss:AutoFitWidth=<span class=\"es0\">\\&#8221;<\/span><span class=\"es0\">\\&#8221;<\/span> ss:Width=<span class=\"es0\">\\&#8221;<\/span>67.5<span class=\"es0\">\\&#8221;<\/span>\/&gt;&#8221;<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;&lt;column ss:StyleID=<span class=\"es0\">\\&#8221;<\/span>s67<span class=\"es0\">\\&#8221;<\/span> ss:Width=<span class=\"es0\">\\&#8221;<\/span>54.75<span class=\"es0\">\\&#8221;<\/span>\/&gt;&#8221;<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;&lt;column ss:StyleID=<span class=\"es0\">\\&#8221;<\/span>s68<span class=\"es0\">\\&#8221;<\/span> ss:AutoFitWidth=<span class=\"es0\">\\&#8221;<\/span><span class=\"es0\">\\&#8221;<\/span>\/&gt;&#8221;<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;&lt;column ss:StyleID=<span class=\"es0\">\\&#8221;<\/span>s69<span class=\"es0\">\\&#8221;<\/span> ss:AutoFitWidth=<span class=\"es0\">\\&#8221;<\/span><span class=\"es0\">\\&#8221;<\/span>\/&gt;&#8221;<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;&lt;column ss:StyleID=<span class=\"es0\">\\&#8221;<\/span>s70<span class=\"es0\">\\&#8221;<\/span> ss:AutoFitWidth=<span class=\"es0\">\\&#8221;<\/span><span class=\"es0\">\\&#8221;<\/span>\/&gt;&#8221;<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;&lt;column ss:StyleID=<span class=\"es0\">\\&#8221;<\/span>s71<span class=\"es0\">\\&#8221;<\/span> ss:AutoFitWidth=<span class=\"es0\">\\&#8221;<\/span><span class=\"es0\">\\&#8221;<\/span>\/&gt;&#8221;<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;&lt;column ss:StyleID=<span class=\"es0\">\\&#8221;<\/span>s72<span class=\"es0\">\\&#8221;<\/span> ss:AutoFitWidth=<span class=\"es0\">\\&#8221;<\/span><span class=\"es0\">\\&#8221;<\/span>\/&gt;&#8221;<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;&lt;column ss:StyleID=<span class=\"es0\">\\&#8221;<\/span>s73<span class=\"es0\">\\&#8221;<\/span> ss:AutoFitWidth=<span class=\"es0\">\\&#8221;<\/span><span class=\"es0\">\\&#8221;<\/span>\/&gt;&#8221;<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;&lt;row&gt;&#8221;<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;&lt;cell&gt;&lt;data ss:Type=<span class=\"es0\">\\&#8221;<\/span>String<span class=\"es0\">\\&#8221;<\/span>&gt;General&lt;\/data&gt;&lt;\/cell&gt;&#8221;<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;&lt;cell&gt;&lt;data ss:Type=<span class=\"es0\">\\&#8221;<\/span>Number<span class=\"es0\">\\&#8221;<\/span>&gt;0&lt;\/data&gt;&lt;\/cell&gt;&#8221;<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;&lt;cell&gt;&lt;data ss:Type=<span class=\"es0\">\\&#8221;<\/span>Number<span class=\"es0\">\\&#8221;<\/span>&gt;12345&lt;\/data&gt;&lt;\/cell&gt;&#8221;<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;&lt;cell&gt;&lt;data ss:Type=<span class=\"es0\">\\&#8221;<\/span>String<span class=\"es0\">\\&#8221;<\/span>&gt;\u00e2\u201a\u00ac&lt;\/data&gt;&lt;\/cell&gt;&#8221;<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;&lt;cell&gt;&lt;data ss:Type=<span class=\"es0\">\\&#8221;<\/span>DateTime<span class=\"es0\">\\&#8221;<\/span>&gt;2007-03-14T00:00:00.000&lt;\/data&gt;&lt;\/cell&gt;&#8221;<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;&lt;cell&gt;&lt;data ss:Type=<span class=\"es0\">\\&#8221;<\/span>DateTime<span class=\"es0\">\\&#8221;<\/span>&gt;1899-12-31T13:30:00.000&lt;\/data&gt;&lt;\/cell&gt;&#8221;<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;&lt;cell&gt;&lt;data ss:Type=<span class=\"es0\">\\&#8221;<\/span>Number<span class=\"es0\">\\&#8221;<\/span>&gt;1&lt;\/data&gt;&lt;\/cell&gt;&#8221;<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;&lt;cell&gt;&lt;data ss:Type=<span class=\"es0\">\\&#8221;<\/span>Number<span class=\"es0\">\\&#8221;<\/span>&gt;0.33333333333333331&lt;\/data&gt;&lt;\/cell&gt;&#8221;<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;&lt;cell&gt;&lt;data ss:Type=<span class=\"es0\">\\&#8221;<\/span>Number<span class=\"es0\">\\&#8221;<\/span>&gt;0.33333333333333331&lt;\/data&gt;&lt;\/cell&gt;&#8221;<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;&lt;cell&gt;&lt;data ss:Type=<span class=\"es0\">\\&#8221;<\/span>String<span class=\"es0\">\\&#8221;<\/span>&gt;text&lt;\/data&gt;&lt;\/cell&gt;&#8221;<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;&lt;cell&gt;&lt;data ss:Type=<span class=\"es0\">\\&#8221;<\/span>String<span class=\"es0\">\\&#8221;<\/span>&gt;Breda&lt;\/data&gt;&lt;\/cell&gt;&#8221;<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;&lt;cell&gt;&lt;data ss:Type=<span class=\"es0\">\\&#8221;<\/span>Number<span class=\"es0\">\\&#8221;<\/span>&gt;12345&lt;\/data&gt;&lt;\/cell&gt;&#8221;<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;&lt;\/row&gt;&#8221;<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sb.<span class=\"me1\">Append<\/span><span class=\"br0\">(<\/span><span class=\"st0\">&#8220;&lt;\/table&gt;&#8221;<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">return<\/span> sb.<span class=\"me1\">ToString<\/span><span class=\"br0\">(<\/span><span class=\"br0\">)<\/span>;<\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">}<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\">&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">}<\/span><\/div>\n<\/li>\n<li class=\"li1\">\n<div class=\"de1\"><span class=\"sy0\">&lt;\/<\/span>worksheet<span class=\"sy0\">&gt;<\/span><\/div>\n<\/li>\n<\/ol>\n<\/div>\n<p>On part 3 we\u2019re going further. Cause the fact is that WordPress doesn\u2019t allow me to write alot of text in one article\u2026 <\/p>\n","protected":false},"excerpt":{"rendered":"<p>In part 1 we started to explain a couple of things in our Excel xml spreadsheet. So let\u2019s start how to explain it in code. First of all we need a StringBuilder. With a StringBuilder we can append all the data we want. Let\u2019s build a couple if simple functions. Everything is written in C#, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[101],"tags":[113,110,114,116,111,117],"class_list":["post-62","post","type-post","status-publish","format-standard","hentry","category-programming","tag-net","tag-c","tag-excel","tag-excel-stylesheet","tag-xml","tag-xml-stylesheet"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pe1EH-10","_links":{"self":[{"href":"http:\/\/www.mysticslayer.com\/index.php?rest_route=\/wp\/v2\/posts\/62","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.mysticslayer.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.mysticslayer.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.mysticslayer.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.mysticslayer.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=62"}],"version-history":[{"count":1,"href":"http:\/\/www.mysticslayer.com\/index.php?rest_route=\/wp\/v2\/posts\/62\/revisions"}],"predecessor-version":[{"id":63,"href":"http:\/\/www.mysticslayer.com\/index.php?rest_route=\/wp\/v2\/posts\/62\/revisions\/63"}],"wp:attachment":[{"href":"http:\/\/www.mysticslayer.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=62"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.mysticslayer.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=62"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.mysticslayer.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=62"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}