日期:2014-05-17  浏览次数:20428 次

DataSet 读写 Excel......
RT 我想在b/s里 对一个DataSet 读写到一个Excel 里面...并且保存到客户端...或者让他们下载出来...

新手...看了一些资料 都没头没尾的...看的头疼...最后我直接 dataset.writexml(.xls) 了 但是格式保存出来木有字段的 表头.... 而且不知道如何保存到 用户那里...
 
大家有什么方法能把一个dataset 保存成一个excel嘛... 求帮忙给思路或者可以参考的材料 谢谢大家了》》》
表示操作的恶心.....              还有dom在用户那里 window.open 打不开该怎吗办?? 失效了..windows.close(); 好使?
------解决方案--------------------
下面是一段Datagrid导出excel的源码,你参考一下:
System.Web.HttpContext curContext = System.Web.HttpContext.Current;
 // IO用于导出并返回excel文件 
System.IO.StringWriter strWriter = null;
System.Web.UI.HtmlTextWriter htmlWriter = null;
if (DataGrid1 != null)
            {
                curContext.Response.Clear();
                curContext.Response.Buffer = true;
                // 设置了类型为中文防止乱码的出现
                curContext.Response.Charset = "GB2312";
                System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN", true);
                // 设置输出流为简体中文
                curContext.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
                // 定义输出文件和文件名
                curContext.Response.AppendHeader("Content-Disposition", "attachment;filename=" + "QueryResult" + ".xls");

                // 设置编码和附件格式 
                curContext.Response.ContentType = "application/vnd.ms-excel";
                this.EnableViewState = false;

                // 导出excel文件
                strWriter = new System.IO.StringWriter(myCItrad);
                htmlWriter = new System.Web.UI.HtmlTextWriter(strWriter);

                // 为了解决dgData中可能进行了分页的情况,需要重新定义一个无分页的DataGrid 
                //dgExport = new System.Web.UI.WebControls.DataGrid();
                //dgExport.DataSource = userEntity.EntityDataSet.Tables[0].DataSet;