public void outex()
{
string fileName = "";
Application app = null;
Workbook wb = null;
Worksheet sheet = null;
try
{
app = new Application();
app.Visible = false;
wb = (Workbook)app.Workbooks.Add(Missing.Value);
sheet = (Worksheet)wb.ActiveSheet;
sheet.Cells[1, 1] = "bianhao";
sheet.Cells[1, 3] = "nihao";
sheet.Cells[3, 5] = "hemingc";
sheet.get_Range("A1", "F1").Merge(sheet.get_Range("A1", "F1").MergeCells);
//for (int i = 0; i < contents.Count; i++)
//{
// String item = contents[i];
// for (int j = 0; j < item.Length; j++)
// sheet.Cells[i + 1, j + 1] = item[j];
//}
wb.Saved = true;
fileName = String.Format("{0}{1}.xlsx", Path.GetTempPath(), DateTime.Now.Ticks);
app.ActiveWorkbook.SaveCopyAs(fileName);
}
finally
{
wb.Close(null, null, null);
app.Workbooks.Close();
app.Quit();
Marshal.ReleaseComObject((object)app);
Marshal.ReleaseComObject((object)wb);
Marshal.ReleaseComObject((object)sheet);
GC.Collect();
System.IO.FileInfo file = new System.IO.FileInfo(fileName);
Response.Clear();
Response.Charset = "GB2312";
Response.ContentEncoding = System.Text.Encoding.UTF8;
// 添加头信息,为"文件下载/另存为"对话框指定默认文件名
Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode(file.Name));
// 添加头信息,指定文件大小,让浏览器能够显示下载进度
Response.AddHeader("Content-Length", file.Length.ToString());
// 指定返回的是一个不能被客户端读取的流,必须被下载
Response.ContentType = "application/ms-excel";
// 把文件流发送到客户端
Response.WriteFile(file.FullName);
// 停止页面的执行
Response.End();
}
}
实现简单说明:
在后台调用excel,生成excel的文件,然后把文件推送到客户端,以供下载。