首先在当前目录下创建一个Table.xls的模板文件。
添加引用
using Excel = Microsoft.Office.Interop.Excel;
using Microsoft.Office.Interop.Excel;
using System.IO;
protected void btnExport_Click(object sender, EventArgs e)
{
string templateFilePath = MapPath(“Table.xls”);
Excel.Application appliction = new Application();
Excel.Workbook book = appliction.Workbooks.Add(templateFilePath);
Excel.Worksheet sheet = book.ActiveSheet as Excel.Worksheet;
//设置Excel中第一行,第一列的内容
Excel.Range range1 = sheet.Cells[1, 1] as Excel.Range;
range1.Value2 = “aa”;
//设置单元格中内容左对齐
range1.HorizontalAlignment = Excel.XlHAlign.xlHAlignLeft;
//设置单元格的背景颜色,16代表灰色
range1.Interior.ColorIndex = 16;
//设置Excel中第一行,第二列的内容
Excel.Range range2 = sheet.Cells[1, 2] as Excel.Range;
range2.Value2 = “bb”;
//设置Excel中第二行,第一列的内容
Excel.Range range3 = sheet.Cells[2, 1] as Excel.Range;
range3.Value2 = “cc”;
//设置Excel中第二行,第二列的内容
Excel.Range range4 = sheet.Cells[2, 2] as Excel.Range;
range4.Value2 = “dd”;
string tmpfilePath = SaveAndCloseBook(book);
RenderExcelFile(tmpfilePath, “Table.xls”);
DeleteFile(tmpfilePath);
}
public static string SaveAndCloseBook(Workbook book)
{
string pathFileName = GenerateTempExcelFileName();
book.SaveAs(pathFileName, XlFileFormat.xlWorkbookNormal, Type.Missing, Type.Missing, Type.Missing, Type.Missing, XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
book.Close(Type.Missing, Type.Missing, Type.Missing);
return pathFileName;
}
public static string GenerateTempExcelFileName()
{
string fileName = Guid.NewGuid().ToString() + “.xls”;
string pathFileName = HttpContext.Current.Server.MapPath(fileName);
return pathFileName;
}
public static void RenderExcelFile(string pathFileName, string clientFileName)
{
HttpResponse response = HttpContext.Current.Response;
string fileName = HttpContext.Current.Server.UrlEncode(clientFileName);
response.AppendHeader(“Content-Disposition”, “attachment; filename=” + fileName);
response.Charset = “UTF-8″;
response.ContentEncoding = System.Text.Encoding.Default;
response.ContentType = “application/ms-excel”;
response.Clear();
response.WriteFile(pathFileName);
response.Flush();
}
public static void DeleteFile(string pathFileName)
{
if (!string.IsNullOrEmpty(pathFileName))
{
File.Delete(pathFileName);
}
}