Проблемы с чтением в файле Excel в C # - PullRequest
1 голос
/ 21 декабря 2009

Я читаю файл Excel с OLDB Connection, используя этот код

        var connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0; data source={0}; Extended Properties=Excel 8.0;", fileName);

        var fileName = string.Format("{0}\\s23.xls", Directory.GetCurrentDirectory());
        var adapter = new OleDbDataAdapter("SELECT * FROM [TEJ3$]  ", connectionString);
        DataTable dt=new DataTable();
        adapter.Fill(dt, "Table1");

и после запуска этого кода моя таблица данных заполняется. Но у меня есть столбец, который имеет много строковых ячеек и несколько пустых ячеек; в файле Excel эти ячейки имеют числовые значения.

У кого-то есть идея?

Ответы [ 4 ]

2 голосов
/ 21 декабря 2009

Проверьте первые примеры здесь: http://www.connectionstrings.com/excel

Что часто идет не так, так это то, что Excel будет оценивать тип столбца на основе первых X строк. Если после этого значения не совпадают, эти строки получают пустые значения. Боюсь, что вход в реестр - это единственный способ заставить драйвер Excel сканировать все строки вначале (как описано в статье на connectionstrings.com)

Поиграйте с настройками HDR и IMEX в вашей среде. В некоторых случаях это также поможет.

1 голос
/ 24 февраля 2010

У меня была именно эта проблема, и я решил ее с помощью настройки IMEX. В случае, если другие задаются вопросом, как включить IMEX, вот что у меня есть в строке подключения

string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;IMEX=1';Data Source={0};";
connectionString = string.Format(connectionString, excelWorkbookPath);
0 голосов
/ 24 февраля 2010

Просто убедитесь, что ваш файл Excel не открыт. Закройте приложение Excel, а затем запустите программу.

Сунил

0 голосов
/ 21 декабря 2009

SpreadsheetGear for .NET позволит вам загружать книги Excel из C # и получать доступ к базовым значениям ячеек или форматированным значениям в любом порядке, независимо от того, как устроена книга или каковы типы ячеек. .

Вы можете посмотреть живые образцы ASP.NET здесь и загрузить бесплатную пробную версию здесь , если хотите попробовать сами.

Отказ от ответственности: я владею SpreadsheetGear LLC

...