首页 新闻 会员 周边

Excel 生成问题下载问题

0
[已关闭问题] 关闭于 2010-05-12 15:13

我现在已经生成成功了一个Excel 但以前听说需要下载是要新建一个Excel进行Copy在进行下载然后在删除,具体这一步的流程我不是很清楚

谁能说一下谢了~

yangyueming的主页 yangyueming | 初学一级 | 园豆:2
提问于:2010-05-11 14:05
< >
分享
所有回答(1)
0

很简单,我做过,不需要Copy,不管你是用什么方法生成Excel(生成方法就不用说了吧),你每次生成用覆盖的方法把原来的覆盖掉保存到服务器一个权限够大(权限设置很重要)的文件夹中,下面代码是下载,注意把代码放在Try...Catch中

代码
FileInfo fileInfo = new FileInfo(strPath);//strPath文件路径
Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
Response.AddHeader(
"Content-Disposition", "attachment;filename=result.xls");
Response.AddHeader(
"Content-Length", fileInfo.Length.ToString());
Response.AddHeader(
"Content-Transfer-Encoding", "binary");
Response.ContentType
= "application/octet-stream";
Response.ContentEncoding
= System.Text.Encoding.GetEncoding("gb2312");
Response.WriteFile(fileInfo.FullName);
Response.Flush();
Response.End();
马克去去 | 园豆:15 (初学一级) | 2010-05-11 14:13
这样是有问题的吧,我先前这样做了,result.xls的数据会累加的,
支持(0) 反对(0) yangyueming | 园豆:2 (初学一级) | 2010-05-11 14:22
生成后,进行输出,会自动提示下载,不过有可能会自动打开。
支持(0) 反对(0) Astar | 园豆:40805 (高人七级) | 2010-05-11 14:24
@Astar:是,我说如果我之前下载过一次result.xls 里面的数据不会清空,当我在进行下载时候里面的数据会累加,如果只有这段代码就会出现这种情况~
支持(0) 反对(0) yangyueming | 园豆:2 (初学一级) | 2010-05-11 15:00
@yangyueming:每次生成result.xls前做了下删除操作,然后再生成并输出让下载。
支持(0) 反对(0) Astar | 园豆:40805 (高人七级) | 2010-05-11 15:41
如果文件存在则删除,无则生成并提供下载。
支持(0) 反对(0) Astar | 园豆:40805 (高人七级) | 2010-05-11 15:41
@Astar:如果我是有一个Excel模板的如果删除,我现在只能对Excel模板进行删除 但这样肯定会出现问题
支持(0) 反对(0) yangyueming | 园豆:2 (初学一级) | 2010-05-11 16:33
@yangyueming:是你创建代码有问题吧,再给你个创建Excel的代码参考 Excel.Application appExcel = null; appExcel = new Excel.Application(); appExcel.Visible = false; appExcel.DisplayAlerts = false; Excel.Workbook wb; if (File.Exists(strExcelTemplate)) wb = appExcel.Workbooks.Open(strExcelTemplate, Type.Missing, false, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); else wb = appExcel.Workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet); wb = appExcel.Workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet); Excel.Worksheet sheet = (Excel.Worksheet)wb.ActiveSheet; if (dt != null) FlushHitPoint(sheet, dt);//给Excel赋值 string strPath = ... wb.SaveAs(strPath, Excel.XlFileFormat.xlHtml, null, null, null, null, Excel.XlSaveAsAccessMode.xlNoChange, Excel.XlSaveConflictResolution.xlLocalSessionChanges, null, null, null, null);
支持(0) 反对(0) 马克去去 | 园豆:15 (初学一级) | 2010-05-11 16:36
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册