栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C# > C#教程

C#中csv文件与DataTable互相导入处理实例解析

C#教程 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C#中csv文件与DataTable互相导入处理实例解析

本文介绍了C#中csv文件与DataTable互相导入处理实例解析,主要功能代码封装处理下,相对比较简单。以后项目用到的话可以直接使用。具体方法如下:

1.封装好的类如下:

using System;
using System.Data;
using System.IO;
using System.Text;
using CSharpUtilHelpV2;
using StringUtilHelp;

namespace DBUtilHelpV2Plus
{
  public static class DBToolV2Plus
  {
    /// 
    /// 将DataTable导出到CSV.
    /// 
    /// DataTable
    /// 保存路径
    /// 标题信息
    /// 列名称『eg:姓名,年龄』
    /// 导出成功true;导出失败false
    public static bool ToCSV(this DataTable table, string fullSavePath, string tableheader, string columname)
    {
      ArgumentChecked(table, fullSavePath);
      //------------------------------------------------------------------------------------
      try
      {
 string _bufferLine = "";
 using (StreamWriter _writerObj = new StreamWriter(fullSavePath, false, Encoding.UTF8))
 {
   if (!string.IsNullOrEmpty(tableheader))
     _writerObj.WriteLine(tableheader);
   if (!string.IsNullOrEmpty(columname))
     _writerObj.WriteLine(columname);
   for (int i = 0; i < table.Rows.Count; i++)
   {
     _bufferLine = "";
     for (int j = 0; j < table.Columns.Count; j++)
     {
if (j > 0)
  _bufferLine += ",";
_bufferLine += table.Rows[i][j].ToString();
     }
     _writerObj.WriteLine(_bufferLine);
   }
   return true;
 }
      }
      catch (Exception)
      {
 return false;
      }
    }
    /// 
    /// 参数检查
    /// 
    /// 
    /// 
    private static void ArgumentChecked(DataTable table, string fullSavePath)
    {
      if (table == null)
 throw new ArgumentNullException("table");
      if (string.IsNullOrEmpty(fullSavePath))
 throw new ArgumentNullException("fullSavePath");
      string _fileName = CSharpToolV2.GetFileNameonly(fullSavePath);
      if (string.IsNullOrEmpty(_fileName))
 throw new ArgumentException(string.Format("参数fullSavePath的值{0},不是正确的文件路径!", fullSavePath));
      if (!_fileName.InvalidFileNameChars())
 throw new ArgumentException(string.Format("参数fullSavePath的值{0},包含非法字符!", fullSavePath));
    }
    /// 
    /// 将CSV文件数据导入到Datable中
    /// 
    /// 
    /// DataTable
    /// 保存路径
    /// Datable
    public static DataTable AppendCSVRecord(this DataTable table, string filePath, int rowIndex)
    {
      ArgumentChecked(table, filePath);
      if (rowIndex < 0)
 throw new ArgumentException("rowIndex");
      using (StreamReader reader = new StreamReader(filePath, Encoding.UTF8, false))
      {
 int i = 0, j = 0;
 reader.Peek();
 while (reader.Peek() > 0)
 {
   j = j + 1;
   string _line = reader.ReadLine();
   if (j >= rowIndex + 1)
   {
     string[] _split = _line.Split(',');
     DataRow _row = table.NewRow();
     for (i = 0; i < _split.Length; i++)
     {
_row[i] = _split[i];
     }
     table.Rows.Add(_row);
   }
 }
 return table;
      }
    }
  }
}

2.代码使用测试如下:

using System;
using System.Data;
using DBUtilHelpV2;
using DBUtilHelpV2Plus;
namespace DBUtilHelpV2PlusTest
{
  class Program
  {
    static DataTable testDb = null;
    static string fullSavePath = string.Format(@"C:{0}.csv", DateTime.Now.ToString("yyyyMMddHH"));
    static void Main(string[] args)
    {
      try
      {
 CreateTestDb();
 Console.WriteLine(string.Format("DataTable导出到CSV文件{0}.", testDb.ToCSV(fullSavePath, "姓名,年龄", "人员信息表") == true ? "成功" : "失败"));
 testDb.Rows.Clear();
 Console.WriteLine(string.Format("清空数据,当前{0}条数据.", testDb.Rows.Count));
 testDb = testDb.AppendCSVRecord(fullSavePath, 2);
 Console.WriteLine(string.Format("CSV文件导入到Datable,导入{0}条数据.", testDb.Rows.Count));
      }
      catch (Exception ex)
      {
 Console.WriteLine(ex.Message);
      }
      finally
      {
 Console.ReadLine();
      }
    }
    static void CreateTestDb()
    {
      if (testDb == null)
      {
 testDb = DBToolV2.CreateTable("Name,Age|int");
 for (int i = 1; i <= 10; i++)
 {
   DataRow _row = testDb.NewRow();
   _row["Name"] = string.Format("YanZhiwei_{0}", i);
   _row["Age"] = i;
   testDb.Rows.Add(_row);
 }
      }
    }
  }
}

运行效果如下图所示:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/126333.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号