在服务器上的一个Button事件,把Table的数据导入到Excel,在客户端呈现的是打开的状态?求各位大虾帮帮忙,急着用。在线等

解决方案 »

  1.   

    调用Excel类库进行导出:首先在项目添加一个引用,引用COM组件:Microsoft Excel5.0对象程序库
    然后:
    private Excel.Application objApp;
    private Excel._Workbook objBook;
    private Excel.Workbooks objBooks;
    private Excel.Sheets objSheets;
    private Excel._Worksheet objSheet;
    objApp = new Excel.Application();
    objBooks = objApp.Workbooks;
    objBook = objBooks.Add(System.Reflection.Missing.Value);

    objSheets = objBook.Worksheets;
    objSheet = (Excel._Worksheet)objSheets.get_Item(1);
                                objApp.Visible = true;
    objApp.UserControl = true;
    接着把Table中的数据依次写入到单元格中,通过此方式导出的Excel文件,只要不释放objApp,他在客户端就是打开的
      

  2.   

    在asp.net中使用Excel
    http://blog.csdn.net/fengfangfang/category/141385.aspx
      

  3.   

    Eddie005(♂) №.零零伍 (♂)  谢谢你的回答,那个我已经试过了,但要实现那个必须的对它的权限就行设置,但我的程序是要放在服务器上的,是不能更改权限的,错误提示是:
       检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.UnauthorizedAccessException: 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。 ASP.NET 未被授权访问所请求的资源。请考虑授予 ASP.NET 请求标识访问此资源的权限。ASP.NET 有一个在应用程序没有模拟时使用的基进程标识(通常,在 IIS 5 上为 {MACHINE}\ASPNET,在 IIS 6 上为网络服务)。如果应用程序正在通过 <identity impersonate="true"/> 模拟,则标识将为匿名用户(通常为 IUSR_MACHINENAME)或经过身份验证的请求用户。 要将 ASP.NET 访问权限授予某个文件,请在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”添加适当的用户或组。突出显示 ASP.NET 帐户,选中所需访问权限对应的框。源错误: 
    行 13: public partial class _Default : System.Web.UI.Page {
    行 14:     protected void Page_Load ( object sender , EventArgs e ) {
    行 15:         Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
    行 16:         excel.Application.Workbooks.Add(true);
    行 17:         excel.Visible = true;
     
      

  4.   

    在文件夹选项中,,文件类型里有个EXCEL有关的文件,在高级选项中改成下载后再打开。
      

  5.   

    hots(天岩) 系统默认的就是选上下载后在确认打开的了。我用的代码是这样的:
      //导出为Excel文件
            //pgd_Data.AllowPaging = false;
            string filesName = "告警_" + "lb_Sort.Text" +".xls";//导出的Excel文件的文件名
            Response.Clear();
            Response.Buffer = true;
            Response.Charset = "UTF-8"; //设置了类型为中文防止乱码的出现 
            Response.AppendHeader("Content-Disposition" , "attachment;filename=" + HttpUtility.UrlEncode(filesName)); //定义输出文件和文件名 
            Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");//设置输出流为简体中文 
            Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。 
            EnableViewState = false;
            System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN" , true);
            System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad);
            System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
            RenderControl(oHtmlTextWriter);
            Response.Write(oStringWriter.ToString());
            Response.End();
    它的结果就是出来提示要打开,保存还是取消的提示:
        我想得到的结果是直接就打开EXCEL,请问能实现这样的效果吗?