Export gridview to pdf in asp.net – Part 5804:33

  • 0
Published on September 11, 2017

The HTML and the code used in the demo, can be found at the link below.

Link for csharp, asp.net, ado.net, dotnet basics and sql server video tutorial playlists

In this video, we will discuss about exporting gridview data to PDF.

Step 1: Create an asp.net web application project.

Step 2: Drag and drop a gridview control and a button control on webform1.aspx. Autoformat the gridview control to use “BrownSugar” scheme. Double click on the button control, to generate click event handler method.

Step 3: To generate PDF documents we will be using open source assembly – iTextSharp.dll. This assembly can be downloaded from After you download the assembly, add a reference to it, from your web application.
a) In Solution Explorer, right click on the “References” folder and select “Add Reference”
b) Browse to the folder where you have downloaded the assembly and Click OK.

Step 4: Add the following “USING” statements, in your code-behind file.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;
using System.Configuration;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.text.html.simpleparser;

Step 5: Copy and paste the following code. The code is well commented and is self-explanatory.
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindGridViewData();
}
}

// ADO.NET code to retrieve data from database
private void BindGridViewData()
{
string CS = ConfigurationManager.ConnectionStrings[“DBCS”].ConnectionString;
using (SqlConnection con = new SqlConnection(CS))
{
SqlDataAdapter da = new SqlDataAdapter(“Select * from tblEmployee”, con);
DataSet ds = new DataSet();
da.Fill(ds);
GridView1.DataSource = ds;
GridView1.DataBind();
}
}

protected void Button1_Click(object sender, EventArgs e)
{
int columnsCount = GridView1.HeaderRow.Cells.Count;
// Create the PDF Table specifying the number of columns
PdfPTable pdfTable = new PdfPTable(columnsCount);

// Loop thru each cell in GrdiView header row
foreach(TableCell gridViewHeaderCell in GridView1.HeaderRow.Cells)
{
// Create the Font Object for PDF document
Font font = new Font();
// Set the font color to GridView header row font color
font.Color = new BaseColor(GridView1.HeaderStyle.ForeColor);

// Create the PDF cell, specifying the text and font
PdfPCell pdfCell = new PdfPCell(new Phrase(gridViewHeaderCell.Text, font));

// Set the PDF cell backgroundcolor to GridView header row BackgroundColor color
pdfCell.BackgroundColor = new BaseColor(GridView1.HeaderStyle.BackColor);

// Add the cell to PDF table
pdfTable.AddCell(pdfCell);
}

// Loop thru each datarow in GrdiView
foreach (GridViewRow gridViewRow in GridView1.Rows)
{
if (gridViewRow.RowType == DataControlRowType.DataRow)
{
// Loop thru each cell in GrdiView data row
foreach (TableCell gridViewCell in gridViewRow.Cells)
{
Font font = new Font();
font.Color = new BaseColor(GridView1.RowStyle.ForeColor);

PdfPCell pdfCell = new PdfPCell(new Phrase(gridViewCell.Text, font));

pdfCell.BackgroundColor = new BaseColor(GridView1.RowStyle.BackColor);

pdfTable.AddCell(pdfCell);
}
}
}

// Create the PDF document specifying page size and margins
Document pdfDocument = new Document(PageSize.A4, 10f, 10f, 10f, 10f);
// Roate page using Rotate() function, if you want in Landscape
// pdfDocument.SetPageSize(PageSize.A4.Rotate());

// Using PageSize.A4_LANDSCAPE may not work as expected
// Document pdfDocument = new Document(PageSize.A4_LANDSCAPE, 10f, 10f, 10f, 10f);

PdfWriter.GetInstance(pdfDocument, Response.OutputStream);

pdfDocument.Open();
pdfDocument.Add(pdfTable);
pdfDocument.Close();

Response.ContentType = “application/pdf”;
Response.AppendHeader(“content-disposition”,
“attachment;filename=Employees.pdf”);
Response.Write(pdfDocument);
Response.Flush();
Response.End();
}

At this point, run the application and click on the button. The data gets exported to PDF as expected. If you are using Google chrome as your browser, you may get a browser warning stating – this type of file can harm your computer do you want to keep Employees.pdf anyway? This is a know issue with google chrome. Internet explorer, works fine.

Enjoyed this video?
"No Thanks. Please Close This Box!"