数据源来自于gridview,怎么导出txt文本,搞了一天了也只能从datatable中导出txt,亲亲们指点一下哦

解决方案 »

  1.   

    gridview和datatable不相等!datatable可作为gridview的数据源    datatable != gridview  明白?
    你可以循环gridview   把每行的数据保存到  datatable   然后导出
      

  2.   

    既然dataTable可以导,干嘛不把数据源gridview的数据赋值到dataTable,然后通过dataTable导!
      

  3.   

    怎么把gridview中的数据赋值到datatablea啊?
      

  4.   

    你 gridview难道绑定的数据不是DataTable里的数据吗?如果是和导出DataTable又有什么区别啊!!
      

  5.   

    是这样的我想保留数据在gridview中的格式所以才想从gridview中导数据的
      

  6.   

    你将绑定gridview的数据源绑定到datatable上再导出就好了。
      

  7.   

    不是一样的么,导dg和导dt有啥区别?下面单元格不是textbox的自己改下类型。//using System.IO;
    /// <summary>
            /// 文件导出Excel
            /// </summary>
            /// <param name="FileName">文件名</param>
            /// <param name="dt">DataGrid</param>
            public void ExportExcel(string FileName, DataGrid dt)
            {
                //string FileName = "d:\\abc.xls";
                FileStream objFileStream;
                StreamWriter objStreamWriter;
                string strLine = "";
                objFileStream = new FileStream(FileName, FileMode.OpenOrCreate, FileAccess.Write);
                objStreamWriter = new StreamWriter(objFileStream, System.Text.Encoding.Unicode);            for (int i = 0; i < dt.Columns.Count; i++)
                {
                    strLine = strLine + dt.Columns[i].HeaderText.ToString() + Convert.ToChar(9);
                }
                objStreamWriter.WriteLine(strLine);
                strLine = "";            for (int i = 0; i < dt.Items.Count; i++)
                {
                    strLine = strLine + (i + 1) + Convert.ToChar(9);
                    for (int j = 1; j < dt.Columns.Count; j++)
                    {
                        strLine = strLine + ((TextBox)dt.Items[i].Cells[j].Controls[0]).ToString() + Convert.ToChar(9); 
                    }
                    objStreamWriter.WriteLine(strLine);
                    strLine = "";
                }
                objStreamWriter.Close();
                objFileStream.Close();
            }