怎样从datagridview中导入导出txt文件?请哪位给贴一些代码。

解决方案 »

  1.   

    excel就有
           private void ReportNMTVPgmModDetail()
            ...{
                //创建一个Excel 应用程序类,是通过一个接口来创建的
                _Application app = new Excel.ApplicationClass();
                try
                ...{
                    //获得工作薄的集合
                    Workbooks workbooks = app.Workbooks;
                    //添加一个工作薄采用缺省参数
                    Workbook workbook = workbooks.Add(Missing.Value);
                   //获得第一个SHEET页
                    Worksheet worksheet = (Worksheet)workbook.Worksheets[1];                string fileName = "节目单模版明细列表_"
                        + DateTime.Now.ToShortDateString().Replace("-", "")
                        + "_"
                        + DateTime.Now.ToShortTimeString().Replace(":", "");                int columnCount = dgvProgram.ColumnCount;
                    int rowCount = dgvProgram.Rows.Count;
                    worksheet.Cells[1, 1] = "编号";
                    for (int i = 1; i < columnCount; i++)
                    ...{
                        worksheet.Cells[1, i + 1] = dgvProgram.Columns[i].HeaderText;
                    }                System.Data.DataTable tablePMD = (System.Data.DataTable)dgvProgram.DataSource;
                    int rowIndex = 1;
                    DataRow tempDR;                //worksheet.Cells[rowIndex + 1, 1] = tablePMD.Rows[0][0].ToString(); **Test
                    for (int i = 0; i < rowCount; i++)
                    ...{
                        worksheet.Cells[rowIndex + 1, 1] = tablePMD.Rows[i][0].ToString();
                        for (int j = 1; j < columnCount; j++)
                        ...{
                            worksheet.Cells[rowIndex + 1, j + 1] = dgvProgram.Rows[i].Cells[j].Value;
                        }
                        rowIndex++;
                    }                //保存Excel,第一个参数是保存的Excel文件,带路径。后面的参数都采用反射的缺省值
                    //Missing.Value ,要引用using System.Reflection;
                    worksheet.SaveAs("C:\Documents and Settings\heyuming\桌面\Excel\" + fileName + ".xls",
                        Missing.Value,
                        Missing.Value,
                        Missing.Value,
                        Missing.Value,
                        Missing.Value,
                        Missing.Value,
                        Missing.Value,
                        Missing.Value);                workbooks.Close();
                    MessageBox.Show("文件导出成功");
                }
                catch 
                ...{
                    throw new Exception("文件导出失败");
                }
                finally
                ...{
                    app.UserControl = false;
                    app.Quit();
                }
            }
      

  2.   

     简单处理模式:将DataGridView中数据行依格式字符依次追加入 Text文件!
     下面是一个DataGridView数据导出至Excel文件的方法,希望对你有所帮助!        /// <summary>
            /// 从DataGridView导出数据至EXCEL
            /// </summary>
            /// <param name="dgv"></param>
            /// <returns></returns>
            public static bool ExportDataToExcelFile(DataGridView dgv)
            {
                try
                {
                    //Select Excel File
                    SaveFileDialog saveFileDlg = new SaveFileDialog();                saveFileDlg.InitialDirectory = "c:\\";
                    saveFileDlg.Filter = "Excel files (*.xls)|*.xls";
                    saveFileDlg.FilterIndex = 2;
                    saveFileDlg.RestoreDirectory = true;                if (saveFileDlg.ShowDialog() != DialogResult.OK)
                        return false;                //Create OleDbConn
                    string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;"
                                   + "Data Source=" + saveFileDlg.FileName + ";"
                                   + "Extended Properties=\"Excel 5.0;HDR=YES\"";
                    OleDbConnection OleDbConn = new OleDbConnection();
                    OleDbConn.ConnectionString = connStr;
                    OleDbConn.Open();                OleDbCommand cmd = new OleDbCommand();
                    cmd.Connection = OleDbConn;                //Create Table Of Excel
                    string createTableStr = "Create Table [DGV_DATA](";
                    int i, j, k;
                    for (i = 0; i < dgv.ColumnCount - 1; i++)
                    {
                        createTableStr += dgv.Columns[i].HeaderText + " text,";
                    }
                    createTableStr += dgv.Columns[i].HeaderText + " text)";                cmd.CommandText = createTableStr;
                    cmd.ExecuteNonQuery();                //Save Data To Excel File
                    string insertStr = "";
                    for (j = 0; j < dgv.RowCount; j++)
                    {
                        insertStr = "INSERT INTO [DGV_DATA$] values('";
                        for (k = 0; k < dgv.ColumnCount - 1; k++)
                        {
                            insertStr += dgv.Rows[j].Cells[k].Value.ToString() + "','";
                        }
                        insertStr += dgv.Rows[j].Cells[k].Value.ToString() + "')";                    cmd.CommandText = insertStr;
                        cmd.ExecuteNonQuery();
                    }                //Close OleDbConn
                    OleDbConn.Close();
                }
                catch (Exception Ex)
                {
                    MessageBox.Show(Ex.Message);
                    return false;
                }            return true;
            }
      

  3.   

    各位,excel的表格我这里可能不好用,必须用txt,导入导出到DataGridView中,希望能继续关注这个帖子!
      

  4.   

    兄弟看看这个
    这里面很详细http://www.gz183.com.cn/Info/28/info30319_1.htm
      

  5.   

    导入情况下,excel和txt原理差不多,都是把字段一个个读出来,然后组成sql语句插入
    导出么,excel有一个很简单的方法,代码不多,在网上搜下,好像是通过gridview导出的,代码很少,可以Google下
      

  6.   

    导入txt的代码如下,思路是按照字节数去字段
    StreamReader objreader = new StreamReader(filepath, Encoding.Default);
                string sline = "";       //将数据文件中的内容按行读出来,
                ArrayList arrtext = new ArrayList();
                while (sline != null)
                {
                    sline = objreader.ReadLine();
                    if (sline != null)
                        arrtext.Add(sline);
                }
                objreader.Close();
                string orlcon = "Data Source=fapdb;Persist Security Info=True;User ID=fapdb;password=fapdb;Unicode=True";
                OracleConnection ocon = new OracleConnection(orlcon);
                ocon.Open();
                OracleTransaction oratran = ocon.BeginTransaction();//开始一个事物
                try
                {
                    Console.WriteLine("正在导入......");
                    for (int i = 0; i < arrtext.Count; i++)
                    {
                        string s = arrtext[i].ToString();
                        if (s.Length != 0)
                        {
                            byte[] bytes = System.Text.Encoding.Default.GetBytes(s.ToString());
                            string seq_no = System.Text.Encoding.Default.GetString(bytes, 0, 10).Trim();
                            string tran_req_brch = System.Text.Encoding.Default.GetString(bytes, 11, 10).Trim();
                            string tran_time = System.Text.Encoding.Default.GetString(bytes, 22, 10).Trim();
                            string card_no1 = System.Text.Encoding.Default.GetString(bytes, 33, 19).Trim();
                            string card_no2 = System.Text.Encoding.Default.GetString(bytes, 53, 19).Trim();
                            string cert_no = System.Text.Encoding.Default.GetString(bytes, 73, 30).Trim();
                            string unit_seqno = System.Text.Encoding.Default.GetString(bytes, 104, 30).Trim();
                            string cert_kind = System.Text.Encoding.Default.GetString(bytes, 135, 2).Trim();
                            string curr_kind = System.Text.Encoding.Default.GetString(bytes, 138, 2).Trim();
                            string amt1 = System.Text.Encoding.Default.GetString(bytes, 141, 13).Trim();
                            string date_ctrl = System.Text.Encoding.Default.GetString(bytes, 155, 10).Trim();
                            string accr_beg_date = System.Text.Encoding.Default.GetString(bytes, 166, 10).Trim();
                            string acct_no2 = System.Text.Encoding.Default.GetString(bytes, 177, 19).Trim();
                            string cstm_name = System.Text.Encoding.Default.GetString(bytes, 197, 16).Trim();
                            string card_flag = System.Text.Encoding.Default.GetString(bytes, 214, 2).Trim();
                            //string acct_flag = System.Text.Encoding.Default.GetString(bytes, 217, 2).Trim();
                            string vouc_no = System.Text.Encoding.Default.GetString(bytes, 217, 20).Trim();
                            string fsbz = System.Text.Encoding.Default.GetString(bytes, 238, 2).Trim();
                            string vouc_kind = System.Text.Encoding.Default.GetString(bytes, 241, 1).Trim();
                            string insert = " insert into t_trans_zz values(";
                            insert += "'" + seq_no + "','" + tran_req_brch + "','" + tran_time + "','" + card_no1 + "','" + card_no2 + "','" + cert_no + "','" + unit_seqno + "','" + cert_kind + "','" + curr_kind + "','" + amt1 + "','" + date_ctrl + "'";
                            insert += ",'" + accr_beg_date + "','" + acct_no2 + "','" + cstm_name + "','" + card_flag + "','" + vouc_no + "','" + fsbz + "','" + vouc_kind + "')";
                            OracleCommand com = new OracleCommand(insert, ocon);
                            com.Transaction = oratran;
                            int intnum = i + 1;
                            num = intnum;
                            com.ExecuteNonQuery();
      

  7.   

    导出:把每个单元格值逐个取出,用'\t'和'\r\n'分隔开,再写入txt文件
    导入:相反
      

  8.   

    //导出到txt
    //strFileName文件名,strSplit文件中数据间的分隔符
    public static bool DataTableToTxt(DataGridView gridview, string strFileName, char strSplit)
          {
              if (gridview == null||gridview.Rows.Count==0)
                  return false;          FileStream fileStream = new FileStream(strFileName, FileMode.OpenOrCreate);
              StreamWriter streamWriter = new StreamWriter(fileStream, System.Text.Encoding.Unicode);          StringBuilder strBuilder = new StringBuilder();          try
              {
                  for (int i = 0; i < gridview.Rows.Count; i++)
                  {
                      strBuilder = new StringBuilder();
                      for (int j = 0; j < gridview.Columns.Count; j++)
                      {
                          strBuilder.Append(gridview.Rows[i].Cells[j].Value.ToString() + strSplit);
                      }
                      strBuilder.Remove(strBuilder.Length - 1, 1);
                      streamWriter.WriteLine(strBuilder.ToString());
                  }
              }
              catch(Exception ex)
              {
                  string strErrorMessage = ex.Message;
                  return false;
              }
              finally
              {
                  streamWriter.Close();
                  fileStream.Close();
              }          return true;
          }
      

  9.   

    txt导入到dataTable
     /// <summary>
          /// 将Txt中数据读入DataTable中
          /// </summary>
          /// <param name="strFileName">文件名称</param>
          /// <param name="isHead">是否包含表头</param>
          /// <param name="strSplit">分隔符</param>
          /// <param name="strErrorMessage">错误信息</param>
          /// <returns>DataTable</returns>
          public static DataTable TxtToDataTable(string strFileName, char strSplit, ref string strErrorMessage)
          {
              DataTable dtReturn = new DataTable();          try
              {
                  string[] strFileTexts = File.ReadAllLines(strFileName);              if (strFileTexts.Length == 0)
                  {
                      strErrorMessage = "文件中没有数据!";
                      return null;
                  }              string[] strLineTexts = strFileTexts[0].Split(strSplit);
                  if (strLineTexts.Length == 0)
                  {
                      strErrorMessage = "文件中数据格式不正确!";
                      return null;
                  }
                  for (int i = 0; i < strLineTexts.Length; i++)
                  {
                       dtReturn.Columns.Add("Columns" + i.ToString());
                  }              for (int i = 0; i < strFileTexts.Length; i++)
                  {
                      strLineTexts = strFileTexts[i].Split(strSplit);
                      DataRow dr = dtReturn.NewRow();
                      for (int j = 0; j < strLineTexts.Length; j++)
                      {
                          dr[j] = strLineTexts[j].ToString();
                      }
                      dtReturn.Rows.Add(dr);
                  }
              }
              catch(Exception ex)
              {
                  strErrorMessage = "读入数据出错!"+ex.Message ;
                 
                  return null;
              }          return dtReturn;
          }
      

  10.   

     private void button1_Click_1(object sender, EventArgs e)
            {
                Stream myStream;
                StreamWriter sw;
                string tempStr = "";
                try
                {                if (this.dataGridView1.Rows.Count > 0)
                    {
                        SaveFileDialog sfd = new SaveFileDialog();
                        sfd.Filter = "Text files (*.txt)|*.txt";
                        sfd.FilterIndex = 0;
                        sfd.RestoreDirectory = true;
                        sfd.CreatePrompt = true;
                        sfd.Title = "Export Txt File to... ";                    DateTime now = DateTime.Now;
                        sfd.FileName = now.Year.ToString().PadLeft(2)     /*  年   */
                        + now.Month.ToString().PadLeft(2, '0')           /*  月   */
                        + now.Day.ToString().PadLeft(2, '0') + "-"      /*  日   */
                        + now.Hour.ToString().PadLeft(2, '0')          /*  时   */
                        + now.Minute.ToString().PadLeft(2, '0')       /*  分   */
                        + now.Second.ToString().PadLeft(2, '0');     /*  秒   */                    sfd.ShowDialog();                    myStream = sfd.OpenFile();
                       
                        sw = new StreamWriter(myStream,System.Text.Encoding.GetEncoding("gb2312") );
                        string str = "";                             //写标题 
                                for (int i = 0; i < this.dataGridView1.ColumnCount; i++) 
                                { 
                                    if (i > 0) 
                                        { 
                                        str += "\t"; 
                                        } 
                                    str += this.dataGridView1.Columns[i].HeaderText; 
                                }
                                sw.WriteLine(str);
                                progressBar1.Maximum = dataGridView1.Rows.Count;
                        
                                progressBar1.Value = 0;
                                //写内容 
                                for (int j = 0; j < this.dataGridView1.Rows.Count; j++) 
                                {
                                    for (int k = 0; k < this.dataGridView1.Columns.Count; k++) 
                                    {
                                        if (k > 0) 
                                            { 
                                                tempStr += "\t"; 
                                            }
                                        if (this.dataGridView1.Rows[j].Cells[k].Value == null)
                                        {
                                            tempStr += this.dataGridView1.Rows[j].Cells[k].Value;
                                        }
                                        else
                                        {
                                            tempStr += this.dataGridView1.Rows[j].Cells[k].Value.ToString();
                                        }
                                        if (progressBar1.Value >= dataGridView1.Rows.Count - 1)
                                        {
                                            progressBar1.Value = dataGridView1.Rows.Count - 1;
                                        }
                                        else progressBar1.Value += 1;                                } 
                                    sw.WriteLine(tempStr); 
                                    tempStr = ""; 
                                }                            sw.Close();
                                myStream.Close();                             if (tempStr != String.Empty)
                                { 
                                    MessageBox.Show("the data succeed of Export", "information", MessageBoxButtons.OK, MessageBoxIcon.Information); 
                                } 
                            } 
                                else 
                                { 
                                    MessageBox.Show("nothing data export", "information", MessageBoxButtons.OK, MessageBoxIcon.Information); 
                                } 
                        } 
                    catch (Exception) 
                    { 
                        MessageBox.Show("error", "Error information", MessageBoxButtons.OK, MessageBoxIcon.Error); 
                    } 
                    finally 
                    { 
                        //sw.Close(); 
                        //myStream.Close(); 
                    }            }
      

  11.   

    做一个string[],把datagridview的值放入到string[],再把string[]直接写入到txt文件,你可以用tab分开,也可以使用 “,”做为分隔符
      

  12.   

    this.Cursor = Cursors.WaitCursor;
                string filename = "C:\\Documents and Settings\\Administrator\\桌面\\CST.txt";
                FileStream sr = File.Open(filename, FileMode.Create);            StreamWriter sw = new StreamWriter(sr, System.Text.Encoding.Unicode);
                StringBuilder strBuilder = new StringBuilder();
                try
                {
                    for (int i = 0; i < dataGridView1.Rows.Count-1; i++)
                    {
                        strBuilder = new StringBuilder();
                        for (int j = 0; j < dataGridView1.Columns.Count; j++)
                        {
                            strBuilder.Append(dataGridView1.Rows[i].Cells[j].Value.ToString() + ' ');
                        }
                        strBuilder.Remove(strBuilder.Length - 1, 1);
                        sw.WriteLine(strBuilder.ToString());
                    }                System.Diagnostics.Process.Start("notepad.exe ", "C:\\Documents and Settings\\Administrator\\桌面\\CST.txt");
                    this.Cursor = Cursors.Default; 
                }
                catch (Exception ex)
                {
                    MessageBox.Show("000");
                }
                finally
                {
                    sw.Close();
                    sr.Close();
                }