:: Не фоксом единым
Microsoft.ACE.OLEDB.12.0
S-type
Автор

Сообщений: 2969
Дата регистрации: 24.04.2004
Понадобилось прочитать данные из XLS файла. Реализовал через OleDb провайдер Microsoft.ACE.OLEDB.12.0. Добавил проверку на то, что этот провайдер установлен на компьютере. А затем задумался - есть ли шанс, что Microsoft.ACE.OLEDB.12.0 не будет установлен на компьютере? Вообще, в какой момент он ставится и кем? Откуда он взялся на моём компьютере - я же его не ставил! Он входит в состав операционки, или вместе с офисом залетел?
Ratings: 0 negative/0 positive
Re: Microsoft.ACE.OLEDB.12.0
ssa

Сообщений: 12999
Откуда: Москва
Дата регистрации: 23.03.2005
Офисный, стоять не обязан. Да еще и нужной разрядности.


------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: Microsoft.ACE.OLEDB.12.0
S-type
Автор

Сообщений: 2969
Дата регистрации: 24.04.2004
Т.е. надо ставить отдельно...

Спасибо.
Ratings: 0 negative/0 positive
Re: Microsoft.ACE.OLEDB.12.0
S-type
Автор

Сообщений: 2969
Дата регистрации: 24.04.2004
Столкнулся с ещё одной проблемой. Хочу по очереди просмотреть все листы.

string fileName = @"c:\Temp\1234.xls";
// Загружаем документ //////////////////////////////////////////////////////////////////
OleDbConnection сonn = new OleDbConnection();
сonn.ConnectionString = $"Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=\"Excel 8.0;HDR=No\";Data Source={fileName}";
сonn.Open();
// Получаем список листов в файле
DataTable schemaTable = сonn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
Console.WriteLine("Всего: "+schemaTable.Rows.Count);
foreach (DataRow drRow in schemaTable.Rows)
{
Console.WriteLine(drRow["TABLE_NAME"].ToString());
}

В документе один лист. Но GetOleDbSchemaTable показывает два листа. В консоли вижу:

Всего: 2
Лист1$
Лист1$_ФильтрБазыДанны

Проблема в том, что на листе установлен фильтр, который и выводится GetOleDbSchemaTable.

Вопрос - как можно отрезать лишнее? Фильтры не нужны, как получить только листы?



Исправлено 1 раз(а). Последнее : S-type, 07.09.16 15:42
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 14 (Гостей: 14)

© 2000-2024 Fox Club 
Яндекс.Метрика