zoukankan      html  css  js  c++  java
  • c# 将csv文件转换datatable的三种方式。

    第一种:

    public static DataTable csvdatatable(string path)
    {
    DataTable dt = new DataTable();
    string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";" + "Extended Properties='Excel 12.0 Xml;HDR=YES;IMEX=1;MAXSCANROWS=0'"using (OleDbConnection conn = new OleDbConnection(connectionString))
    {
    using (OleDbCommand comm = new OleDbCommand())
    {
    string sheetName = "Sheet1";
    comm.CommandText = "Select * from [" + sheetName + "$]";
    comm.Connection = conn;
    using (OleDbDataAdapter da = new OleDbDataAdapter())
    {
    da.SelectCommand = comm;
    da.Fill(dt);
    return dt;
    }
    }
    
    }
    }

    第二种:

    需要引用    

    Microsoft.VisualBasic.dll

    private static DataTable GetDataTabletFromCSVFile(string csv_file_path)
    {
    DataTable csvData = new DataTable();
    try
    {
    using (TextFieldParser csvReader = new TextFieldParser(csv_file_path))
    {
    csvReader.SetDelimiters(new string[] { "," });
    csvReader.HasFieldsEnclosedInQuotes = true;
    string[] colFields = csvReader.ReadFields();
    foreach (string column in colFields)
    {
    if (column == "Date" || column == "Test1" || column == "USL" || column == "LSL")
    {
    DataColumn datecolumn = new DataColumn(column);
    datecolumn.AllowDBNull = true;
    csvData.Columns.Add(datecolumn);
    }
    }
    while (!csvReader.EndOfData)
    {
    string[] fieldData = csvReader.ReadFields();
    for (int i = 0; i < fieldData.Length; i++)
    {
    if (fieldData[i] == "")
    {
    fieldData[i] = null;
    }
    }
    csvData.Rows.Add(fieldData);
    }
    }
    
    }
    catch (Exception)
    {
    throw;
    }
    return csvData;
    }

     第三种 需要引用

    Microsoft.Office.Interop.Excel

          public DataTable READExcel(string path)
            {
                Microsoft.Office.Interop.Excel.Application objXL = null;
                Microsoft.Office.Interop.Excel.Workbook objWB = null;
                objXL = new Microsoft.Office.Interop.Excel.Application();
                objWB = objXL.Workbooks.Open(path);
                Microsoft.Office.Interop.Excel.Worksheet objSHT = objWB.Worksheets[1];
    
                int rows = objSHT.UsedRange.Rows.Count;
                int cols = objSHT.UsedRange.Columns.Count;
                DataTable dt = new DataTable();
                int noofrow = 1;
    
                for (int c = 1; c <= cols; c++)
                {
                    string colname = objSHT.Cells[1, c].Text;
                    dt.Columns.Add(colname);
                    noofrow = 2;
                }
    
                for (int r = noofrow; r <= rows; r++)
                {
                    DataRow dr = dt.NewRow();
                    for (int c = 1; c <= cols; c++)
                    {
                        dr[c - 1] = objSHT.Cells[r, c].Text;
                    }
    
                    dt.Rows.Add(dr);
                }
    
                objWB.Close();
                objXL.Quit();
                return dt;
            }
  • 相关阅读:
    C# Socket TcpClient 无法从传输连接中读取数据: 远程主机强迫关闭了一个现有的连接。。
    C#编程使用Managed Wifi API连接无线SSID
    中国最精确的电子地图,可以找到你家哦
    利用mysql数据库中的TMD表修复“is marked as crashed and last (automatic?) repair failed”的错误 Database query error
    Google Directions API 中路线编码解析
    c语言 nmealib-0.5.3 学习 简单代码 ,供参考
    【转】IT管理人才必备的十大能力
    【转】10个让人受益的管理原理
    【转】耐心看
    【转】对于移动APP测试的一个小技巧
  • 原文地址:https://www.cnblogs.com/jack-jun/p/10677966.html
Copyright © 2011-2022 走看看