Я не могу открыть файл .xlsx

Я хочу открыть файл xlsx, я попробовал приведенный ниже код, но он не открывается и не вызывает никаких ошибок.

Может ли кто-нибудь пролить свет на него

string path = "C:\\examples\\file1.xlsx"; string connString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=\"Excel 12.0 Xml;HDR=YES\";"); OleDbConnection cn = new OleDbConnection(connString); cn.Open(); OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", cn); DataTable dt = new DataTable(); adapter.Fill(dt); 

Вы используете его на 64-битной Windows? В прошлый раз, когда я проверял драйверы OLE для книг Excel, они не работали с 64-битной Windows.

SpreadsheetGear для .NET позволит вам читать книги Excel из .NET и работать с .NET 2.0+, включая 64-битную Windows.

Здесь вы можете посмотреть живые образцы и скачать бесплатную пробную версию здесь .

Отказ от ответственности: у меня есть ООО «SpreadsheetGear»

В декабре 2010 года Microsoft (наконец!) Опубликовала 64-разрядный OLEDB-драйвер для файлов CSV и XLSX.

Вам понадобится Распространяемый 64-разрядный Microsoft Access Database Engine 2010 . Обязательно загрузите 64-разрядную версию ( AccessDatabaseEngine_X64.exe ). Чтобы установить его, вам необходимо удалить 32-разрядные приложения Office (включая Sharepoint Designer!).

Если вам нужен CSV, вам понадобится имя Microsoft Access Text Driver (*.txt, *.csv) , но я не смог найти полную строку подключения, но используя этот драйвер из OLEDB (хотя, если у вас есть , оставьте оценку, и я исправлю этот ответ). Обратите внимание, что 64-битные имена отличаются от 32-разрядных версий.

Для чтения файлов XLSX используйте строку подключения следующим образом:

 "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + FilePath + ";Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=2\""; 

Для файлов XLS (pre-2007 Excel) используется строка подключения следующим образом:

 "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + FilePath + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=2\""; 

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

Посмотрите, что это делает в вашей строке подключения:

Расширенные свойства = \ "Excel 8.0; HDR = YES; \" остальная часть вашей строки подключения верна, я считаю.

В дополнение к ответу Филлипа обязательно установите TargetPlatform на x86.

  • Каково значение IMEX по умолчанию в OLEDB?
  • Есть ли способ изменить цвет ячейки Excel с помощью C #?
  • IMEX в OleDbConnection
  • Excel QueryTable в источнике текстового файла выходит из строя с помощью Jet OLEDB Connect String
  • Не удается инициализировать объект источника данных поставщика OLE DB
  • Несколько открытых команд oledb-соединений для запроса Excel
  • Ошибка 3706 Visual FoxPro OLE DB Provider и Excel
  • Можно ли ускорить запрос Excel в PowerShell?
  • Не удалось подключиться к файлу excel в качестве источника данных
  • Чтение Excel: имена столбцов усекаются до первых 64 символов
  • Как установить Excel OLE DB на Windows Server 2008?
  • Interesting Posts

    Excel VBA копирует и вставляет несколько диапазонов на основе критериев в столбце, не работающих с объединенными ячейками

    VBA для цикла с циклом If

    Excel не может подключиться к серверу анализа 2016. Ошибка: такой хост не известен

    SUMIF внутри SUMIF, похоже, невозможен, так или иначе?

    Чтение файла Excel непосредственно из сценария R

    как преобразовать .txt в .xls в python?

    VBA смотреть вниз столбца в Excel и найти значение?

    VBA Excel Добавление диапазона с динамическим размером в список Combobox

    Компонент «Расширенные свойства» в строке подключения

    Как я могу написать массив строк в файле Excel одновременно?

    Сделать Excel видимым при закрытии формы пользователя

    AutoFit Row Height работает при ручном запуске на объединенные ячейки, но не в VB

    Как получить число столбцов рабочего листа как целое (28) вместо букв Excel («AB»)?

    Excel – случайное число от 1 до 4 с вероятностью, но не может повторяться

    Создание текстовых файлов из строк данных в Excel

    Давайте будем гением компьютера.