kykyryky
@kykyryky

Какие есть особенности при работе с excel файлами через ole db?

Например есть код:
OleDbCommand command = new OleDbCommand();
OleDbConnection connection = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileName + ";Extended Properties=Excel 8.0;");
connection.Open();
string sql = "select * from Sheet1";
command.Connection = connection;
command.CommandText = sql;
OleDbDataReader reader = command.ExecuteReader();
...


Правильно ли я понимаю, что структура файла должна быть ровно как таблица бд? никаких объединенных ячеек, никаких красивых шапок и заголовков.
Если я создаю файл с помощью запроса CREATE TABLE, а потом добавлю туда строки в MS Excel или Calc, то, загружая содержимое с помощью ole db, этих строк он не видит, или получаю исключение ""невозможно найти устанавливаемый ISAM", или "Объект "Sheet1" не найден ядром СУБД Microsoft Access. Убедитесь, что объект существует, а его имя и путь к нему указаны правильно." т.д.
Создается впечатление, что если я создал файл подобным кодом с запросом CREATE TABLE, то кроме как с помощью своей программы в этом файле лучше ничего не изменять сторонними программами. И получается, что произвольный файл не получится разобрать таким образом?
  • Вопрос задан
  • 598 просмотров
Решения вопроса 1
@saltydogd
Логичное впечатление, в принципе )
Да, возможность удобная, но для "регулярной" структуры ячеек, писать можно ( давно это было, навскидку) чем-угодно, не меняя формат
Плюс пляски с источником данных (есть ли соответствующий провайдер в системе, настройки)
Если формат плавающий, то логичнее воспользоваться Excel Primary Interop Assembly
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы