生成excel之后如何保存到服务器指定目录中?

lee_voc 2012-10-09 10:40:26
小弟目前初学,碰到个问题请大家帮忙看下。 下面那个方法是把数据以ms-execl的格式,以Response输出到浏览器(客户端),
怎么才能保存到服务器指定的目录中呢


public static void DataSetToExcel(DataSet ds)
{
DataTable dee = ds.Tables[0];
dee.DataSet.DataSetName = ds.ToString();
HttpContext.Current.Response.Clear();
System.IO.StringWriter sw = new System.IO.StringWriter();

//写数据,省略
...
...
...

sw.Close();
string ls_FileName = "attachment; filename=";
ls_FileName += FileHelper.GetRandom();
ls_FileName += ".xls";

HttpContext.Current.Response.AddHeader("Content-Disposition", ls_FileName);

HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";

HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");

HttpContext.Current.Response.Write(sw);

HttpContext.Current.Response.Flush();
HttpContext.Current.Response.End();
...全文
1376 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lee_voc 2012-10-09
  • 打赏
  • 举报
回复
是我问题没描述清楚,我的意思是这样传入的路径中的文件名是固定的,比如我写的
File.WriteAllText(HttpRuntime.AppDomainAppPath + "\\Temp\\123.xls", sw.ToString());
其中123.xls这个文件是每执行一次就会往里面写一次数据。如果多个用户同时操作那么不可能每次操作都能保存一次的吧 而是会覆盖原来的。

这个问题我自己再想办法解决,晚点我再结贴了,还是谢谢你的帮助。
孟子E章 2012-10-09
  • 打赏
  • 举报
回复
Server.MapPath("~/xx/" + "这里你可以随你改 啊" + ".xls")
lee_voc 2012-10-09
  • 打赏
  • 举报
回复
弄好了,谢谢啦 。
不过还有个问题文件名是不是就要固定了,那么比如有多个用户同时操作的时候只能保存最后一次的数据了吧?
孟子E章 2012-10-09
  • 打赏
  • 举报
回复
HttpContext.Current.Response.Write(sw);
改成
System.IO;File.WriteAllText(Server.MapPath("~/xx/x.xls"),sw)
lee_voc 2012-10-09
  • 打赏
  • 举报
回复
路径我可以获取到,就是不知道该如何写。能否给个例子呢
Im_Sorry 2012-10-09
  • 打赏
  • 举报
回复
save 通过路径来保存!
lee_voc 2012-10-09
  • 打赏
  • 举报
回复
问题已经解决了,我的方法是在写入数据之前先将这个文件123.xls COPY一份另存,再写入这个复件。这样就OK啦!

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧