当前位置:编程学习 > C#/ASP.NET >>

asp.net导出cvs、excel文件问题

  做一个excel导出功能,在本地vs功能浏览的时候可以出现效果,但是发布到服务器上面点击无反应。先说明一下代码情况,采用jquery Ui 新建一个aspx页面里面放了一个超连接,点击后调用js方法跳转到另一个空页面(也是aspx页面),然后建datatable导出文件,下面是代码

#region 导出csv
        public void ExportToSvc(System.Data.DataTable dt, string strName)
        {
            string strPath = Path.GetTempPath() + strName + ".csv";

            if (File.Exists(strPath))
            {
                File.Delete(strPath);
            }
            //先打印标头
            StringBuilder strColu = new StringBuilder();
            StringBuilder strValue = new StringBuilder();
            int i = 0;            
            try
            {
                StreamWriter sw = new StreamWriter(new FileStream(strPath, FileMode.CreateNew), Encoding.GetEncoding("GB2312"));

                for (i = 0; i <= dt.Columns.Count - 1; i++)
                {
                    strColu.Append(dt.Columns[i].ColumnName);
                    strColu.Append(",");
                }
                strColu.Remove(strColu.Length - 1, 1);//移出掉最后一个,字符

                sw.WriteLine(strColu);

                foreach (DataRow dr in dt.Rows)
                {
                    strValue.Remove(0, strValue.Length);//移出
                    for (i = 0; i <= dt.Columns.Count - 1; i++)
                    {
                        strValue.Append(dr[i].ToString());
                        strValue.Append(",");
                    }
                    strValue.Remove(strValue.Length - 1, 1);//移出掉最后一个,字符
                    sw.WriteLine(strValue);
                }
                
                sw.Close();
                System.Diagnostics.Process.Start(strPath);
                Response.Write("导出成功!" + strPath);
            }
            catch (Exception ex)
            {
                ex.ToString();
                Response.Write("导出失败!" + ex.ToString());
            }
        }
        #endregion
cvs asp.net excel --------------------编程问答-------------------- System.Diagnostics.Process.Start(strPath);

你这是在服务器端打开呀,记住这是后台代码
  
*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/ --------------------编程问答--------------------
引用 1 楼 feiyun0112 的回复:
System.Diagnostics.Process.Start(strPath);

你这是在服务器端打开呀,记住这是后台代码
  
*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/

上面贴出来的代码是在新建的aspx页面的Page_Load事件里面执行的,前面的都执行了就是执行System.Diagnostics.Process.Start(strPath);
 的时候无反应 --------------------编程问答-------------------- 楼主这是网上的代码吧,这样导出效率很低的 --------------------编程问答--------------------
引用 3 楼 qiujialongjjj 的回复:
楼主这是网上的代码吧,这样导出效率很低的

我现在只是想先实现功能,谁写过juqery ui 里面的excel导出 --------------------编程问答-------------------- 这样只能在服务器上面导出吧? --------------------编程问答--------------------     // 设置编码和附件格式
            HttpContext.Response.ContentType = "application/vnd.ms-excel";
            HttpContext.Response.ContentEncoding = Encoding.UTF8;
            HttpContext.Response.Charset = "";
            HttpContext.Response.AppendHeader("Content-Disposition",
                "attachment;filename=" + HttpUtility.UrlEncode("IT需求分析-软件需求完成报表.xls", Encoding.UTF8));




    System.IO.MemoryStream ms = workbook.SaveToStream();
            HttpContext.Response.BinaryWrite(ms.GetBuffer()); --------------------编程问答-------------------- System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(dir);
然后 
System.IO.StreamWriter sw = null;
sw.Write("<table>"); --------------------编程问答-------------------- http://download.csdn.net/download/wufan0913/4187105  写Excle+的XML格式 --------------------编程问答-------------------- 我要的不是你们说的这种,现在的问题是我用的框架是jquery esayui 里面无法在后面写点击时间只能通过js跳转到aspx页面执行里面的Page_Load里面写的自定义方法,问题就出现了,每次都无法将导出的问题保存在客户端,也不知道怎么将数据流发送到客户端让用户保存下载。 --------------------编程问答-------------------- 没人会弄吗? --------------------编程问答--------------------
引用 10 楼 Rexmax 的回复:
没人会弄吗?

现在这样有2中方法可以弄:
1.将数据流导出用excel的形式保存在服务器端,然后通过下载的方式给客户端(这样比较麻烦,但是不会出现你上面所说的问题)
2.另一个就是将你的查询条件通过js发送到后台,查询出数据来,保存成tadatable,然后导出(详细方法可以在网上找datatable导出excel)。
希望采纳我的意见!!!
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,