Неизвестная проблема при экспорте Excel в System.DataTable - PullRequest
1 голос
/ 02 августа 2011

Я пытаюсь получить данные из файла Excel в DataTable.Вот мой фрагмент кода:

 FilePath = WebConfig.SavePath + "Book2.xls";

            // Create the connection object
            OleDbConnection oledbConn = new OleDbConnection(WebConfig.ExcelConnection(FilePath));
            // Open connection
            oledbConn.Open();

            // Create OleDbCommand object and select data from worksheet Sheet1 //WebConfig.SheetNameFirstExcel
            OleDbCommand cmd = new OleDbCommand("SELECT * FROM [" + "Sheet1" + "$]", oledbConn);

            // Create new OleDbDataAdapter
            OleDbDataAdapter oleda = new OleDbDataAdapter();

            oleda.SelectCommand = cmd;

            // Create a DataSet which will hold the data extracted from the worksheet.
            DataTable dt = new DataTable();

            // Fill the DataSet from the data extracted from the worksheet.
            oleda.Fill(dt);

Проблема в том, что данные некоторых ячеек экспортируются в таблицу данных, а некоторые другие - нет.Формат Excel это что-то вроде:Заголовок 1-го ряда2nd Some text3-й ряд пустым4-й столиз 10 столбцов и 298 строк.Чего не хватает в приведенном выше коде, или каких-либо предложений по извлечению таких Excel (.xlsx) в Dataatable в asp.net 3.5

1 Ответ

1 голос
/ 03 августа 2011

Учитывая все ваши проблемы, я подозреваю, что стандартный драйвер oledb просто не может правильно прочитать ваш файл Excel из-за строк текста перед данными таблицы.

Как насчет того, чтобы отойти и просто закодировать его вручную, используя эту библиотеку http://epplus.codeplex.com/ для чтения файла xlsx и создания записей datatable или db

...