问题:
最近有需要通过WEB把数据导出到Excel的功能, 关于导出数据到Excel并无什么新奇可言,网络上到处都是,
但基本上都是一种模式,通过DataGrid 把数据导出到Excel的方式。
前些时间有朋友为了完成此功能,就硬把数据导入DataGrid再导出到Excel。这实在是多此一举。
解决办法:
通过Linq将数据读出,并直接写入数据流中
代码如下:
- public partial class DataToExcel : System.Web.UI.Page
- {
- protected void Page_Load(object sender, EventArgs e)
- {
- DataAccess.DataClassesDataContext db = new DataClassesDataContext();
- var qu = from t in db.TXLInfos
- select t;
- Response.AppendHeader("Content-Disposition", "attachment;filename=result.xls");
- Response.ContentType = "application/ms-excel";
- Response.Charset = "gb2312";
- Response.ContentEncoding = Encoding.GetEncoding("gb2312");
- System.IO.StringWriter writer = new System.IO.StringWriter();
- foreach(TXLInfo item in qu)
- {
- writer.Write(item.GQName);
- writer.Write("/t");
- writer.Write(item.GQID);
- writer.WriteLine();
- }
- Response.Write(writer.ToString());
- Response.End();
- }
- }
注:"/t"默认做为Excel中两列之间的分隔符号
这篇博客介绍了如何避免通过DataGrid将数据导出到Excel的繁琐步骤,而是直接利用Linq查询从asp.net应用程序中读取数据并写入到Excel文件。通过创建一个HTTP响应,设置适当的头信息和字符编码,然后遍历Linq查询结果并将其写入数据流,实现了高效的数据导出功能。

334

被折叠的 条评论
为什么被折叠?



