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;
            }
  • 相关阅读:
    Add Two Numbers
    Reverse Linked List II
    Reverse Linked List
    Remove Duplicates from Sorted List
    Remove Duplicates from Sorted List II
    Partition List
    Intersection of Two Linked Lists
    4Sum
    3Sum
    2Sum
  • 原文地址:https://www.cnblogs.com/jack-jun/p/10677966.html
Copyright © 2011-2022 走看看