Чтение буквенно-цифровых символов из файла CSV в C # - PullRequest
1 голос
/ 13 апреля 2010

Я использую следующий код для чтения моего CSV-файла:

public DataTable ParseCSV(string path)
    {
        if (!File.Exists(path))
            return null;

        string full = Path.GetFullPath(path);
        string file = Path.GetFileName(full);
        string dir = Path.GetDirectoryName(full);

        //create the "database" connection string 
        string connString = "Provider=Microsoft.ACE.OLEDB.12.0;"
          + "Data Source=\"" + dir + "\\\";"
          + "Extended Properties=\"text;HDR=Yes;FMT=Delimited\"";

        //create the database query
        string query = "SELECT * FROM " + file;

        //create a DataTable to hold the query results
        DataTable dTable = new DataTable();

        //create an OleDbDataAdapter to execute the query
        OleDbDataAdapter dAdapter = new OleDbDataAdapter(query, connString);

        //fill the DataTable
        dAdapter.Fill(dTable);

        dAdapter.Dispose();

        return dTable;
    }

Но вышеупомянутое не читает буквенно-цифровое значение из файла CSV. он читает только я или числовой или альфа.

Что нужно исправить, чтобы прочитать буквенно-цифровые значения? Пожалуйста, предложите.

Ответы [ 4 ]

1 голос
/ 13 апреля 2010

Я предлагаю вам использовать Быстрый CSV Reader , который не имеет этой проблемы и намного быстрее.

0 голосов
/ 13 мая 2011

Привет, весь этот код получает буквенно-цифровые значения также

using System.Data.OleDb;

string ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + filepath + ";" + "Extended Properties="+(char)34+"Excel 8.0;IMEX=1;"+(char)34;

        string CommandText = "select * from [Sheet1$]";

        OleDbConnection myConnection = new OleDbConnection(ConnectionString);
        myConnection.Open();

        OleDbDataAdapter myAdapter = new OleDbDataAdapter(CommandText, myConnection);

        ds = null;
        ds = new DataSet();
        myAdapter.Fill(ds);
0 голосов
/ 03 мая 2011

Попробуйте это OleDBAdapter Excel QA Я отправил через переполнение стека.

Я не пробовал это, но звучит интересно! LinqToExcel говорят, что это может быть использовано и для файлов .CSV ...

0 голосов
/ 13 апреля 2010

Удалить IMEX = 1 из строки подключения. Я не думаю, что вам нужно для файлов CSV.

...