我目前的代码是:
//调用下面的类
Excel.Application xlApp;
Excel._Workbook xlBook;
Excel._Worksheet xlSheet;
Excel._QueryTable xlQryTable;
Excel.Range rans;
Excel.Range ran;
。。。。。生成文件后
//输出到客户端的代码
xlBook.SaveCopyAs(Server.MapPath(".") + "\\aaa.xls");
string path = Server.MapPath("aaa.xls");
System.IO.FileInfo file = new System.IO.;
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();
6 个解决方案
#1
private void StringW(DataGrid dg)
{
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
dg.RenderControl(htw);
Response.Write(sw.ToString());
htw.Close();
sw.Close();
Response.End();
}
{
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
dg.RenderControl(htw);
Response.Write(sw.ToString());
htw.Close();
sw.Close();
Response.End();
}
#2
我不是用上面的方法的,而是调用EXCEl的控件的,因为上面的导出来的有HTML代码的,到时候不能导入的。
#3
不保存也能下載?
你可不可以這樣,每次生成一個新的下載之前刪掉上一次的excel文件。
你可不可以這樣,每次生成一個新的下載之前刪掉上一次的excel文件。
#4
up
#5
我的项目中是在客户端生成EXCEL效果不错
#6
mark
#1
private void StringW(DataGrid dg)
{
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
dg.RenderControl(htw);
Response.Write(sw.ToString());
htw.Close();
sw.Close();
Response.End();
}
{
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
dg.RenderControl(htw);
Response.Write(sw.ToString());
htw.Close();
sw.Close();
Response.End();
}
#2
我不是用上面的方法的,而是调用EXCEl的控件的,因为上面的导出来的有HTML代码的,到时候不能导入的。
#3
不保存也能下載?
你可不可以這樣,每次生成一個新的下載之前刪掉上一次的excel文件。
你可不可以這樣,每次生成一個新的下載之前刪掉上一次的excel文件。
#4
up
#5
我的项目中是在客户端生成EXCEL效果不错
#6
mark