//保存文件(可以自己更改路径)
excel.DisplayAlerts = false;
excel.AlertBeforeOverwriting = false;
excel.Save("C:\Users\Lenovo\Desktop\abc.xls");
//关闭excel
excel.Quit();
//清空excel中的内容
excel = null;
GC.Collect();//垃圾回收
保存的时候会保存两次(excel.Save("C:\Users\Lenovo\Desktop\abc.xls")),这个方法会自己保存到我制定的路径,但是也会弹出两次另存为窗口,请问各位有没有办法让它只弹出一次另存为窗口?
|
...怎么贴代码上来。。。啊
在输入框上面有一个插入代码片的功能
//导出表格后是否打开,(false)为不打开 (true)为打开
excel.Visible = false;
//保存文件
excel.DisplayAlerts = false;
excel.AlertBeforeOverwriting = false;
string path = "D:\" ;
excel.ActiveWorkbook.SaveCopyAs(path);
//关闭excel
excel.Quit();
//清空excel中的内容
excel = null;
GC.Collect();//垃圾回收
//将保存在文件夹下的excel,以文件流的方式导出
System.IO.FileInfo file = new System.IO.FileInfo(path);
Response.Clear(); //[将文件从“服务端”导出到“客户端”]
Response.Charset = "UTF-8"; //[设置写入流的字符编码方式为UTF-8]
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);// 把文件流发送到客户端
HttpContext.Current.ApplicationInstance.CompleteRequest();
//Response.End(); // 停止页面的执行
File.Delete(fileName);//[关闭文件流]