asp.net导出cvs、excel文件问题
做一个excel导出功能,在本地vs功能浏览的时候可以出现效果,但是发布到服务器上面点击无反应。先说明一下代码情况,采用jquery Ui 新建一个aspx页面里面放了一个超连接,点击后调用js方法跳转到另一个空页面(也是aspx页面),然后建datatable导出文件,下面是代码cvs asp.net excel --------------------编程问答-------------------- System.Diagnostics.Process.Start(strPath);
#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
你这是在服务器端打开呀,记住这是后台代码
*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/ --------------------编程问答--------------------
上面贴出来的代码是在新建的aspx页面的Page_Load事件里面执行的,前面的都执行了就是执行System.Diagnostics.Process.Start(strPath);
的时候无反应 --------------------编程问答-------------------- 楼主这是网上的代码吧,这样导出效率很低的 --------------------编程问答--------------------
我现在只是想先实现功能,谁写过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里面写的自定义方法,问题就出现了,每次都无法将导出的问题保存在客户端,也不知道怎么将数据流发送到客户端让用户保存下载。 --------------------编程问答-------------------- 没人会弄吗? --------------------编程问答--------------------
现在这样有2中方法可以弄:
1.将数据流导出用excel的形式保存在服务器端,然后通过下载的方式给客户端(这样比较麻烦,但是不会出现你上面所说的问题)
2.另一个就是将你的查询条件通过js发送到后台,查询出数据来,保存成tadatable,然后导出(详细方法可以在网上找datatable导出excel)。
希望采纳我的意见!!!
补充:.NET技术 , ASP.NET