导出时怎么另存为我选的文件夹下面

//保存文件(可以自己更改路径)
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")),这个方法会自己保存到我制定的路径,但是也会弹出两次另存为窗口,请问各位有没有办法让它只弹出一次另存为窗口?

XXXX公司
工程台账-现场安装记录表
项目名称 :项目编号 :
项目负责人 :统计月份 :年 月
序号设备名称品牌型号合同数量单位实际安装情况
数量日期备注
            </td>
        </tr>
        <tr>
            <td>
                <asp:Button ID="btnExport" runat="server" Text="一键导出" OnClientClick="return ExportConfirm();"   class="adminsubmit"></asp:Button>
            </td>
        </tr>
    </table>

...怎么贴代码上来。。。啊

在输入框上面有一个插入代码片的功能

//导出表格后是否打开,(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);//[关闭文件流]