您的位置:程序门 -> .net技术 -> c#



c#中调用excel,我怎么实现在服务器端生成excel文件,不保存直接到输出到客户端下载?


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


c#中调用excel,我怎么实现在服务器端生成excel文件,不保存直接到输出到客户端下载?[已结贴,结贴人:lint412]
发表于:2007-03-28 11:22:34 楼主
网页要生成excel报表供用户下载,我调用了excel,生成后保存到服务器端的某个目录,就可以下载,但是我不想保存而直接输出到客户端下载,因为每次都要保存,服务器段就生成太多的文件了。
我目前的代码是:
//调用下面的类
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();
发表于:2007-03-28 11:33:091楼 得分:15
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();
}
发表于:2007-03-28 11:41:062楼 得分:0
我不是用上面的方法的,而是调用excel的控件的,因为上面的导出来的有html代码的,到时候不能导入的。
发表于:2007-03-28 11:47:403楼 得分:5
不保存也能下載?
你可不可以這樣,每次生成一個新的下載之前刪掉上一次的excel文件。
发表于:2007-03-31 09:20:044楼 得分:0
up
发表于:2007-03-31 09:56:155楼 得分:0
我的项目中是在客户端生成excel效果不错


快速检索

最新资讯
热门点击