Export ASP.NET page to Word, Excel or PDF

Many times we would like to export our page as an Excel sheet, Word doc or PDF file. This can be simply achieved by changing the ContentType of the Response object and overriding the RenderControl method of the control to be exported:

Page Load() {
  // bind data to data bound controls and do other stuff

  Response
      .Clear();  // this clears the Response of any headers or previous output
  Response.Buffer =
      true;  // make sure that the entire output is rendered simultaneously

  ///
  /// Set content type to MS Excel sheet
  /// Use "application/msword" for MS Word doc files
  ///"application/pdf" for PDF files
  ///

  Response.ContentType = "application/vnd.ms-excel";
  StringWriter stringWriter =
      new StringWriter();  // System.IO namespace should be used

  HtmlTextWriter htmlTextWriter = new HtmlTextWriter(stringWriter);

  ///
  /// Render the entire Page control in the HtmlTextWriter object
  /// We can render individual controls also, like a DataGrid to be
  /// exported in custom format (excel, word etc)
  ///
  this.RenderControl(htmlTextWriter);
  Response.Write(stringWriter.ToString());
  Response.End();
}  // end page load

For exporting ASP.NET pages as PDF files, you need to know the Adobe PDF specs for generating the PDf correctly. There is already a wonderful component which does the same and its free! See this article along with sample source code on how to export a page to PDF:

http://www.codeproject.com/cs/library/giospdfnetlibrary.asp

Hope this would be helpful…!

posted on Tuesday, September 26, 2006 1:13 PM

This article is part of the GWB Archives. Original Author: gwbarchive

New on Geeks with Blogs

  • We Won The One Award I Actually Care About

    Full Scale made the Inc. 5000 for the fifth year straight, the 12th listing across my three companies. Here is why the one award you cannot buy is worth stopping for.

  • Your Customers Build the Features Now

    I let a tool I liked sit dead for a year rather than build the features I wanted. An MCP server meant I never had to, and your customers can do the same to your product.

  • Get the Size of a Directory in Linux the Easy Way

    du -sh for the quick answer, ncdu for the cleanup, df for the disk itself: every command for checking directory size in Linux, plus why du and df never agree.

  • Vim Search and Replace: The Ultimate Guide

    One :%s command replaces every match in a file before a find dialog would even open. The Vim substitute patterns worth the muscle memory: flags, ranges, capture groups, and multi-file edits.