Tuesday, July 13, 2010

Export from Code to Excel and Genrate Chart


add using .....

using System.IO;
using Microsoft.Office.Interop.Excel;


On Button click......................
Excel.Application xlApp;
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
object misValue = System.Reflection.Missing.Value;
xlApp = new Excel.ApplicationClass();
xlWorkBook = xlApp.Workbooks.Add(misValue);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
//add data
string Year = DateTime.Now.Year.ToString();
DataSet ds = SeverityRating.SelectSeverity_Chart(Year, ddlQuarter.SelectedValue, ddlSeverity.SelectedValue, SessionInfo.UserId, SessionInfo.CityId, ddlCompany.SelectedValue, Conn);
if (ds != null)
{
if (ds.Tables[1].Rows.Count > 0)
{
//xlWorkSheet.Cells[1, 1] = "Name";
xlWorkSheet.Cells[1, 2] = "Severity Rating " + " " + DateTime.Now.Year.ToString();
for (int i = 1; i <= ds.Tables[1].Rows.Count; i++)
{
xlWorkSheet.Cells[i + 1, 1] = ds.Tables[1].Rows[i - 1]["SeverityRating"].ToString();
xlWorkSheet.Cells[i + 1, 2] = ds.Tables[1].Rows[i - 1]["CatCount"].ToString();
}
}
} Excel.Range chartRange; Excel.ChartObjects xlCharts = (Excel.ChartObjects)xlWorkSheet.ChartObjects(Type.Missing);
Excel.ChartObject myChart = (Excel.ChartObject)xlCharts.Add(30, 150, 500, 250);
Excel.Chart chartPage = myChart.Chart;
string cellNumber = "B" + (ds.Tables[0].Rows.Count + 1);
chartRange = xlWorkSheet.get_Range("A1", cellNumber);
chartPage.SetSourceData(chartRange, misValue); chartPage.ChartType = Excel.XlChartType.xl3DPie;
//xlWorkBook.SaveAs("RootCauseAnalysis.xls");
if (File.Exists(Server.MapPath("~/Common/Uploads/SeverityRating.xls")))
{
File.Delete(Server.MapPath("~/Common/Uploads/SeverityRating.xls"));
}
xlWorkBook.SaveAs(Server.MapPath("Common/Uploads/SeverityRating.xls"), Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue); xlWorkBook.Close(true, misValue, misValue);
xlApp.Quit();
releaseObject(xlWorkSheet);
releaseObject(xlWorkBook);
releaseObject(xlApp);
Response.ContentType = "application/ms-excel";
Response.AddHeader("content-disposition", "inline; filename=" + Server.MapPath("Common/Uploads/SeverityRating.xls"));
Response.TransmitFile(Server.MapPath("Common/Uploads/SeverityRating.xls"));
Response.Flush();

No comments:

Post a Comment