Доступ к формату файла Excel 2007 с OLEDB - PullRequest
2 голосов
/ 11 ноября 2009

В настоящее время я пытаюсь получить доступ к файлу Excel 2007 на сервере, на котором нет Microsoft Office. Моя строка подключения выглядит примерно так.

  String connString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
  "Data Source=" + file_path + ";Extended Properties=Excel 8.0;";

Но это для формата 2003, который отлично работает. Я хотел бы воспользоваться преимуществами формата XML 2007 года. Но я не могу получить доступ к файлу через следующее соединение. (На целевом сервере не установлен Office, но я не уверен, что это причина.

  String connString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
 "DataSource=" + file_path + ";HDR=Yes;IMEX=1;Extended Properties=Excel 12.0;";

Я продолжаю получать сообщение "не могу найти устанавливаемый Исам". Ошибка.

EDIT Я использую Visual Studio 2005 и разрабатываю на C #, если это поможет прояснить ситуацию.

Ответы [ 3 ]

4 голосов
/ 11 ноября 2009

Вы можете попробовать эту строку подключения:

string connectionString = 
    "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + 
    file_name + 
    ";Extended Properties=\"Excel 12.0 Xml;HDR=YES\"";

Обратите внимание, что этот драйвер не поддерживается в системах x64 и не будет работать.

1 голос
/ 19 ноября 2009

Вам следует попробовать использовать проект с открытым исходным кодом Linq to Excel для запроса данных из таблиц Excel. Вы можете использовать операторы LINQ для запроса данных, а Linq to Excel позаботится о создании соединения OLEDB и создании оператора SQL.

Вот пример того, как легко запрашивать данные из электронной таблицы Excel

var book = new ExcelQueryFactory("pathToExcelFile");
var rows = from x in book.Worksheet() 
           select new                
           {
             Name = x["Name"],
             BirthDate = x["BirthDate"].Cast<DateTime>()
           };

Ознакомьтесь с вступительным видео Linq to Excel для получения дополнительной информации о проекте с открытым исходным кодом.

0 голосов
/ 13 ноября 2009

SpreadsheetGear for .NET позволит вам открыть книгу, не полагаясь на OleDB, COM Interop или любой другой API, который может создавать проблемы на сервере.

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

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

...