1):添加Excel.dll到引用文件中,并在页面后台引用这个命名空间:Using Excel; javascript
2)按钮事件代码: java
string filename = "filename"+ ".xls"; //导出Excel的名字
try
{
Excel.Application excel = new Excel.Application();//申明一个对象;
_Workbook book;
_Worksheet sheet;
book = excel.Workbooks.Add(true);
sheet = (Worksheet)book.ActiveSheet;
excel.Cells[1, 1] = "try again";//在单元格中赋值,row&column都是从1开始
excel.Cells[1, 2] = "this is my another report";
excel.Visible = false;
book.SaveCopyAs(Server.MapPath("file")+"\\"+filename);//保存excel在名为file的文件夹下,这个文件夹必须先存在;
//excel.Quit();//若是不注释掉,会弹出提示框询问你是否保存sheet1;
}
catch (Exception ex)
{
Response.Write("script language=javascript>alert('Encounter one error!');history.go(-1)</script>"); //Exception handling
}
//将保存在file文件夹下的excel,以文件流的方式导出
string path = Server.MapPath("file") + "\\" + filename;
System.IO.FileInfo file = new System.IO.FileInfo(path);
Response.Clear(); //[将文件从“服务端”导出到“客户端”]
Response.Charset = "GB2313"; //[设置写入流的字符编码方式为GB2312]
Response.ContentEncoding = System.Text.Encoding.UTF8; //[设置写入流的文字编码格式:UTF8]
//Response.AddHeader("Content-Disposition", "attachment:filename=" + Server.UrlEncode(file.Name));
Response.AddHeader("Content-Disposition", "attachment;filename=" + Server.UrlEncode(file.Name));//注意attachment后面是分号不是冒号,否则打开后的excel为.aspx页面的HTML代码;// 添加头信息,为"文件下载/另存为"对话框指定默认文件名
Response.AddHeader("Content-Length", file.Length.ToString());// 添加头信息,指定文件大小,让浏览器可以显示下载进度
Response.ContentType = "application/ms-excel";//指定内容类型,导出格式为excel,也能够是ms-word,etc;// 指定返回的是一个不能被客户端读取的流,必须被下载
Response.WriteFile(file.FullName);// 把文件流发送到客户端
Response.End(); // 中止页面的执行
File.Delete(this.FileName);//[关闭文件流] 浏览器
} app