private void DownloadExcel(string fileName, string sheetName, DataTable myDataTable)
{
StringWriter sw = new StringWriter();
sw.WriteLine("<html xmlns:x=/"urn:schemas-microsoft-com:office:excel/">");
sw.WriteLine("<head>");
sw.WriteLine("<!--[if gte mso 9]>");
sw.WriteLine("<xml>");
sw.WriteLine(" <x:ExcelWorkbook>");
sw.WriteLine(" <x:ExcelWorksheets>");
sw.WriteLine(" <x:ExcelWorksheet>");
sw.WriteLine(" <x:Name>" + sheetName + "</x:Name>");
sw.WriteLine(" <x:WorksheetOptions>");
sw.WriteLine(" <x:Print>");
sw.WriteLine(" <x:ValidPrinterInfo />");
sw.WriteLine(" </x:Print>");
sw.WriteLine(" </x:WorksheetOptions>");
sw.WriteLine(" </x:ExcelWorksheet>");
sw.WriteLine(" </x:ExcelWorksheets>");
sw.WriteLine("</x:ExcelWorkbook>");
sw.WriteLine("</xml>");
sw.WriteLine("<![endif]-->");
sw.WriteLine("</head>");
sw.WriteLine("<body>");
sw.WriteLine("<table>");
sw.WriteLine(" <tr>");
//Write Title
foreach(DataColumn col in myDataTable.Columns)
{
sw.Write(String.Format("<td><b>{0}</b></td>",col.ColumnName));
}
sw.WriteLine(" </tr>");
//Write Data
foreach (DataRow dr in myDataTable.Rows)
{
sw.WriteLine(" <tr>");
foreach(DataColumn col in myDataTable.Columns)
{
sw.Write(String.Format("<td>{0}</td>",dr[col.ColumnName]));
}
sw.WriteLine(" </tr>");
}
sw.WriteLine("</table>");
sw.WriteLine("</body>");
sw.WriteLine("</html>");
sw.Close();
Response.Clear();
Response.Buffer = true;
Response.Charset = "UTF-8";
this.EnableViewState = false;
Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName +".xls");
Response.ContentType = "application/ms-excel";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
Response.Write(sw);
Response.End();
}