当前位置: 代码迷 >> C# >> C# SQL 数据导出Excel 有关问题 速求指导
  详细解决方案

C# SQL 数据导出Excel 有关问题 速求指导

热度:39   发布时间:2016-05-05 04:02:24.0
C# SQL 数据导出Excel 问题 速求指导

导出数据怎么成这样了啊?
使用的函数代码如下:
    public void DataSetToExcel(DataSet ds, string FileName)
        {
            try
            {
                //Web页面定义
                System.Web.UI.Page mypage=new System.Web.UI.Page();
                HttpResponse resp;
                resp = HttpContext.Current.Response;
                resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
                resp.AppendHeader("Content-disposition", "attachment;filename=" + FileName + ".xls");
                resp.ContentType = "application/ms-excel";
                //变量定义
                string colHeaders = null;
                string Is_item = null;
                //显示格式定义////////////////
                //文件流操作定义
                //FileStream fs=new FileStream(FileName,FileMode.Create,FileAccess.Write);
                //StreamWriter sw=new StreamWriter(fs,System.Text.Encoding.GetEncoding("GB2312"));
                StringWriter sfw = new StringWriter();
                //定义表对象与行对象,同时用DataSet对其值进行初始化
                System.Data.DataTable dt = ds.Tables[0];
                DataRow[] myRow = dt.Select();
                int i = 0;
                int cl = dt.Columns.Count;
                //取得数据表各列标题,各标题之间以/t分割,最后一个列标题后加回车符
                for (i = 0; i < cl; i++)
                {
                    //if(i==(cl-1))  //最后一列,加/n
                    // colHeaders+=dt.Columns[i].Caption.ToString();
                    //else
                    colHeaders += dt.Columns[i].Caption.ToString() + "\t";
                }
                sfw.WriteLine(colHeaders);
                //sw.WriteLine(colHeaders);
                //逐行处理数据
                foreach (DataRow row in myRow)
                {
                    Is_item = null; 
                    //当前数据写入
                    for (i = 0; i < cl; i++)
                    {
                        //if(i==(cl-1))
                        //   Is_item+=row[i].ToString()+"\n";
                        //else
                        Is_item += row[i].ToString() + "\t";                        
                    }
                    sfw.WriteLine(Is_item);
                    //sw.WriteLine(Is_item);
                                       
                }
                resp.Write(sfw);
                //resp.Clear();
                resp.End();
            }
            catch (Exception e)
            {
                throw e;
            }
        }
------解决思路----------------------
直接用NPOI控件导出不好么?
  相关解决方案