Sample ASP Code: Excel reporting - richly formatted data

<%@ language="JavaScript" %>

<%

      //Create an instance of the application

      var app = Server.CreateObject("PagosSpreadSheet.Application");

      //Add a workbook

      var wb = app.Workbooks.Add();

      //Load a worksheet from added workbook

      var ws = wb.Worksheets("Sheet1");

 

      //Prepare worksheet data

      var data = new Array([ "Employee", "Volume Q1", "Sales Q1", "Volume Q2", "Sales Q2", "Volume Q3", "Sales Q3", "Volume Q4", "Sales Q4" ], [ "Helen", 5, 7906.25, 40, 63250, 69, 109106.25, 31, 49018.75 ], [ "Fred", 32, 45640, 80, 114100, 45, 64181.25, 87, 124083.75 ], [ "John", 60, 107355, 65, 116301.25, 90, 161032.5, 50, 89462.5 ], [ "Jane", 40, 54770, 1, 1369.25, 22, 30123.5, 65, 89001.25 ], [ "Total", 137, 215671.25, 186, 295020.5, 226, 364443.5, 233, 351566.25 ]);

 

      var row;

      var column;

 

      //Bind values to cells

      for (row = 1; row < 7; row++)

      {

            for (column = 1; column < 10; column++)

            {

                  ws.Cells(row, column).Value = data[row-1][column-1];

            }

      }

     

      //Apply styles

      var HAlignCenter=-4108;

      var a1i6 = ws.Range("A1:I6");

      a1i6.Font.Name = "Arial";

      a1i6.Font.Size = 8;

      a1i6.HorizontalAlignment = HAlignCenter;

 

      var a1i1 = ws.Range("A1:I1");

      a1i1.Font.Bold = true;

      a1i1.Interior.Color = parseInt("33CCCC", 16);

 

      var a6i6 = ws.Range("A6:I6");

      a6i6.Font.Bold = true;

      a6i6.Interior.Color = parseInt("33CCCC", 16);

 

      var numberFormat = "_(\"$\"* #,##0.00_);_(\"$\"* \\(#,##0.00\\);_(\"$\"* \"-\"??_);_(@_)";   

      var c2c6 = ws.Range("C2:C6");

      var e2e6 = ws.Range("E2:E6");

      var g2g6 = ws.Range("G2:G6");

      var i2i6 = ws.Range("I2:I6");

      c2c6.NumberFormat = numberFormat;

      e2e6.NumberFormat = numberFormat;

      g2g6.NumberFormat = numberFormat;

      i2i6.NumberFormat = numberFormat;

     

      //Save workbook to a temporary file for streaming

      var fileName = Server.MapPath("Spreadsheets/Temp/EmployeeDataFormat" + Session.SessionID + ".xml");

      wb.SaveAs(fileName);

 

      //Prepare response for streaming

      Response.Clear();

      Response.ContentType = "application/vnd.ms-excel";

      Response.AddHeader("Content-Disposition", "attachment; filename=EmployeeDataFormat.xml");

     

      //Stream workbook to response

      var stream = Server.CreateObject("ADODB.Stream");

      stream.Mode = 3;

      stream.Open();

      stream.LoadFromFile(fileName);

      content=stream.ReadText(-1);

      Response.BinaryWrite(content);

      stream.Close();

      stream=null;

      content=null;

 

      //Delete temporary file

      var fso=Server.CreateObject("Scripting.FileSystemObject");

      fso.DeleteFile(fileName);

      fso=null;

 

      //Close workbook

      wb.Close();

 

      //End response

      Response.End();  

%>