<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Mark Brown's Blog : Excel</title><link>http://blogs.msdn.com/mab/archive/tags/Excel/default.aspx</link><description>Tags: Excel</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>SOAP Toolkit + Vista + Excel 2007 + Call Web Services = Impossible</title><link>http://blogs.msdn.com/mab/archive/2008/01/02/soap-toolkit-vista-excel-2007-call-web-services-impossible.aspx</link><pubDate>Thu, 03 Jan 2008 00:13:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6959426</guid><dc:creator>mab</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/mab/comments/6959426.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mab/commentrss.aspx?PostID=6959426</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mab/rsscomments.aspx?PostID=6959426</wfw:comment><description>&lt;P&gt;Well I wouldn't say impossible ... just not supported.&lt;/P&gt;
&lt;P&gt;I had a conversation with a client that asked "Where do I get the latest SOAP toolkit for Vista?".&amp;nbsp;&amp;nbsp; I had to politely say "We don't support the SOAP Toolkit anymore."&amp;nbsp; Which was followed by "Well how do I call a web service from VBA in excel?".&amp;nbsp;&amp;nbsp; The short answer is "you migrate to managed code!" and use Visual Studio 2005 Second Edition (VSTO) or the new Visual Studio 2008 Excel Workbook project.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Everyone that does Excel "programming" should be using managed extension excel workbooks and discontinue using macros or VBA for development like web service calls.&amp;nbsp;&amp;nbsp; Managed code gives you much more flexibility and support.&lt;/P&gt;
&lt;P&gt;It is as easy as (almost)&amp;nbsp;...&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Open Visual Studio 2008&lt;/LI&gt;
&lt;LI&gt;Create a New Project &lt;/LI&gt;
&lt;LI&gt;Select tye Office type/Excel 2007 Workbook&lt;/LI&gt;
&lt;LI&gt;Add your bits and components to the workbook&lt;/LI&gt;
&lt;LI&gt;In the (.cs or .vb) code behind, put in standard web service calls referencing System.Web and System.Web.Services, web references, etc&lt;/LI&gt;
&lt;LI&gt;Enjoy a happy coding experience&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Like to know your thoughts, but thought I would just write a little about my experience ...&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6959426" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mab/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/mab/archive/tags/Excel/default.aspx">Excel</category></item><item><title>Sending Excel 97/XP/2000/2003/2007 Output from ASP.NET 2.0</title><link>http://blogs.msdn.com/mab/archive/2007/02/20/sending-excel-97-xp-2000-2003-2007-output-from-asp-net.aspx</link><pubDate>Tue, 20 Feb 2007 18:59:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1727290</guid><dc:creator>mab</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.msdn.com/mab/comments/1727290.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mab/commentrss.aspx?PostID=1727290</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mab/rsscomments.aspx?PostID=1727290</wfw:comment><description>&lt;P&gt;I know there are several articles on the internet describing varous methods to send excel output from ASP.net.&amp;nbsp;&amp;nbsp; Additional, there are many great third party tools as well.&amp;nbsp;&amp;nbsp; I needed to do something simple and lightweight so I expanded on some examples.&amp;nbsp;&amp;nbsp; I needed to do some formating and embed and image.&amp;nbsp;&amp;nbsp; But first there is some setup to do.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Setup Web.config to enable XLS to be compiled and executed as ASP.NET code by the runtime&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Under the &amp;lt;system.web&amp;gt; section:&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;compilation&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;debug&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;true&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;buildProviders&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;add&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;extension&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;.xls&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;type&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;System.Web.Compilation.PageBuildProvider&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;/&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;buildProviders&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;BR&gt;&amp;lt;/&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;compilation&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;httpHandlers&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;add&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;verb&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;*&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;path&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;*.xls&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;type&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;System.Web.UI.PageHandlerFactory&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;validate&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;=&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;true&lt;/FONT&gt;&lt;FONT size=2&gt;"&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;/&amp;gt;&lt;BR&gt;&amp;lt;/&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;httpHandlers&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;/P&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;STRONG&gt;Create Excel Output page&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Add a web form name ExcelOut.aspx&lt;/LI&gt;
&lt;LI&gt;Remove&amp;nbsp;all html code, just leave the &amp;lt;@ Page ...&amp;gt; directive line&lt;/LI&gt;
&lt;LI&gt;In code behind add the following code in the page load event (please note that html generated is incomplete and is only to show as a sample, please follow all html best practices in a production envrionment)&lt;/LI&gt;&lt;/UL&gt;&lt;FONT size=2&gt;
&lt;P&gt;Response.Clear();&lt;BR&gt;Response.Buffer = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;true&lt;/FONT&gt;&lt;FONT size=2&gt;;&lt;BR&gt;Response.ContentType = &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;"application/vnd.ms-excel"&lt;/FONT&gt;&lt;FONT size=2&gt;;&lt;BR&gt;Response.Charset = &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;""&lt;/FONT&gt;&lt;FONT size=2&gt;;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;this&lt;/FONT&gt;&lt;FONT size=2&gt;.EnableViewState = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;false&lt;/FONT&gt;&lt;FONT size=2&gt;;&lt;BR&gt;System.IO.&lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;StringWriter&lt;/FONT&gt;&lt;FONT size=2&gt; ExcelStringWriter = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;FONT size=2&gt; System.IO.&lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;StringWriter&lt;/FONT&gt;&lt;FONT size=2&gt;();&lt;BR&gt;System.Web.UI.&lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;HtmlTextWriter&lt;/FONT&gt;&lt;FONT size=2&gt; oHtmlTextWriter = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;FONT size=2&gt; System.Web.UI.&lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;HtmlTextWriter&lt;/FONT&gt;&lt;FONT size=2&gt;(ExcelStringWriter);&lt;BR&gt;ExcelStringWriter.Write(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;"&amp;lt;table border=1&amp;gt;&amp;lt;tr&amp;gt;"&lt;/FONT&gt;&lt;FONT size=2&gt;);&lt;BR&gt;ExcelStringWriter.Write(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;"&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;blah&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;"&lt;/FONT&gt;&lt;FONT size=2&gt;);&lt;BR&gt;ExcelStringWriter.Write(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;"&amp;lt;td width=\"100\"&amp;gt;&amp;lt;img src=\"http://search.msdn.microsoft.com/search/masterpages/items/msdn.jpg\" /&amp;gt;&amp;lt;/td&amp;gt;"&lt;/FONT&gt;&lt;FONT size=2&gt;);&lt;BR&gt;ExcelStringWriter.Write(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;"&amp;lt;td&amp;gt;1&amp;lt;/td&amp;gt;&amp;lt;td style=\"mso-number-format: _(&amp;amp;quot;$&amp;amp;quot;* #,##0.00_);_(&amp;amp;quot;$&amp;amp;quot;* \\(#,##0.00\\);_(&amp;amp;quot;$&amp;amp;quot;* &amp;amp;quot;-&amp;amp;quot;??_);_(@_)\"&amp;gt;5000&amp;lt;/td&amp;gt;"&lt;/FONT&gt;&lt;FONT size=2&gt;);&lt;BR&gt;ExcelStringWriter.Write(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;"&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;"&lt;/FONT&gt;&lt;FONT size=2&gt;);&lt;BR&gt;Response.Write(ExcelStringWriter.ToString());&lt;BR&gt;Response.End();&lt;/P&gt;&lt;/FONT&gt;&lt;STRONG&gt;
&lt;P&gt;&lt;STRONG&gt;Create a web form then rename to XLS extension&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;/STRONG&gt;&lt;STRONG&gt;Create the page to call ExcelOut&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Add a new web&amp;nbsp;page called TestExcel.aspx&lt;/LI&gt;
&lt;LI&gt;Add a hyperlink in the page like &lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;a&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;href&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;="Excelout.xls"&amp;gt;&lt;/FONT&gt;&lt;FONT size=2&gt;Excel output&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;/&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;a&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;&lt;STRONG&gt;Compile and run and you should something similar to ...&lt;/STRONG&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;Even though the example below is an HTML table please note that the output is in excel and each item is in a excel cell.&amp;nbsp; The "blah" is in cell A1 with font style of bold,&amp;nbsp; "1" is in cell c1, "5000" is in cell d1 with a format on the cell as "$#,##0.00".&lt;/P&gt;
&lt;TABLE class="" cellSpacing=0 cellPadding=0 border=1&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class=""&gt;&lt;B&gt;blah&lt;/B&gt;&lt;/TD&gt;
&lt;TD class="" width=100&gt;&lt;IMG src="http://search.msdn.microsoft.com/search/masterpages/items/msdn.jpg" mce_src="http://search.msdn.microsoft.com/search/masterpages/items/msdn.jpg"&gt;&lt;/TD&gt;
&lt;TD class=""&gt;1&lt;/TD&gt;
&lt;TD class="" style="mso-number-format: _('$'* #,##0.00_)"&gt;$5,000.00&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P mce_keep="true"&gt;&lt;STRONG&gt;Summary&lt;/STRONG&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;This is just an example how to export to Excel from ASP.NET using a simple html snippet that includes images and text formatting.&amp;nbsp;&amp;nbsp; Let me know what you think or any code improvements.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1727290" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mab/archive/tags/Internet+Explorer/default.aspx">Internet Explorer</category><category domain="http://blogs.msdn.com/mab/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/mab/archive/tags/Excel/default.aspx">Excel</category></item></channel></rss>