DataGridView导入导出Txt文档

导入方法:

      #region 方法--txt导入dgv
        /// <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,System.Text.Encoding.UTF8);

                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;
        }
#endregion


导出方法:

       #region 方法--dgv导出到txt
        //导出到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.UTF8);

            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); // 将最后添加的一个strSplit删除掉
                    streamWriter.WriteLine(strBuilder.ToString());
                }
            }
            catch (Exception ex)
            {
                string strErrorMessage = ex.Message;
                return false;
            }
            finally
            {
                streamWriter.Close();
                fileStream.Close();
            }

            return true;
        }
        #endregion


运行效果:

 
窗口load:
private void TxtFromTo_Load(object sender, EventArgs e)
        {
            DataTable dtb1;
            string err = "";
            dtb1 = TxtToDataTable("Test.txt",',',ref err);
            dataGridView1.DataSource = dtb1;
            //dataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
            dataGridView1.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
            dataGridView1.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
            dataGridView1.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
            dataGridView1.Columns[3].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
            dataGridView1.Columns[0].FillWeight = 25;
            dataGridView1.Columns[1].FillWeight = 25;
            dataGridView1.Columns[2].FillWeight = 25;
            dataGridView1.Columns[3].FillWeight = 25;
            DataTableToTxt(dataGridView1, "aa.txt", ',');
        }

  • 6
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
DataGridView是.NET Framework中的一个控件,用于在Windows窗体应用程序中显示和编辑表格数据。而CSV(Comma-Separated Values)是一种常见的文件格式,用于存储表格数据,每行数据由逗号分隔。 DataGridView可以通过以下步骤导入CSV文件: 1. 创建一个DataTable对象,用于存储CSV文件中的数据。 2. 使用StreamReader读取CSV文件,将每行数据分割成数组,并将数组添加到DataTable中。 3. 将DataTable绑定到DataGridView上,以显示CSV文件中的数据。 DataGridView可以通过以下步骤导出CSV文件: 1. 创建一个StringBuilder对象,用于存储CSV文件中的数据。 2. 遍历DataGridView中的每行数据,将每行数据转换为逗号分隔的字符串,并将其添加到StringBuilder对象中。 3. 将StringBuilder对象中的数据写入到CSV文件中。 下面是一个简单的示例代码,演示如何使用DataGridView导入导出CSV文件: ``` // 导入CSV文件 private void ImportCSV(string filePath) { DataTable dt = new DataTable(); using (StreamReader sr = new StreamReader(filePath)) { string line; while ((line = sr.ReadLine()) != null) { string[] values = line.Split(','); if (dt.Columns.Count == 0) { foreach (string value in values) { dt.Columns.Add(value); } } else { dt.Rows.Add(values); } } } dataGridView1.DataSource = dt; } // 导出CSV文件 private void ExportCSV(string filePath) { StringBuilder sb = new StringBuilder(); foreach (DataGridViewRow row in dataGridView1.Rows) { if (!row.IsNewRow) { for (int i = 0; i < row.Cells.Count; i++) { sb.Append(row.Cells[i].Value.ToString()); if (i != row.Cells.Count - 1) { sb.Append(","); } } sb.AppendLine(); } } File.WriteAllText(filePath, sb.ToString()); } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值