Я не могу открыть файл .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);
- SSAS 2005 Совсем недавно закрыл соединение RANDOMLY
- Чтение экспоненциальных значений из файла excel приводит к потере данных
- Чтение Excel с использованием OLEDB с использованием формата ячейки
- Соединение Microsoft ACE OLEDB, создающее пустой Excel, когда имеется 166 110 строк
- Пропустить несколько строк при разборе Excel с помощью OleDb
- Строка соединения OLEDB не работает - кроме случаев, когда Excel открыт ...?
- Ошибка каста при настройке источника с помощью управления axSpreadsheet
- C #, Как изменить тип данных во время чтения в Ace.OleDB
- OleDbDataReader - Нет значения для одного или нескольких требуемых параметров
- Подключитесь к листу .xlsx из c # -office2016: Внешняя таблица не в ожидаемом формате
- Объединенные ячейки VSTO
- Asp.Net import excel не работает на веб-сервере
- Использование Excel OleDb для получения имен листов В ЛИСТЕ ЗАКАЗА
Вы используете его на 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.