2010-01-15 3 views
2

Я использую OleDbConnection для подключения к электронной таблице из программы C#. Одним из параметров в строке соединения является версия Excel.Программный поиск Excel-файла Excel версии

"Provider = Microsoft.Jet.OLEDB.4.0; Источник данных = C: \ Book1.xls; Extended Properties =" Excel 8.0, HDR = YES»

Учитывая путь в Excel файл, как я могу узнать, какая версия формата Excel использует?

Спасибо заранее,

T.

ответ

2

Скачать OLE File Property Reader. Регистрация dsofile.dll с регистрационным svr32 и добавьте его в качестве ссылки в своем приложении. Следующий код выводит тип файла Excel. Он не будет работать с xlsx/docx, поскольку они не являются объектными файлами OLE, но должны работать во всех старых форматах Office (2007/2003/XP).

var doc = new OleDocumentPropertiesClass();    
doc.Open(@"c:\spreadhseet.xls", false, dsoFileOpenOptions.dsoOptionDefault); 
Console.WriteLine(doc.OleDocumentType); 
3

Я дополнение к тому, что было сказано, и, кроме использования автоматизации Excel, чтобы открыть файл, вы можете попробовать чтение версию файла из кода:

XLs файлы: те, сохраняются в виде structured storage. вы можете использовать технику из статьи здесь: How To Determine Which Version of Excel Wrote a Workbook

xlsx файлы: вы можете открыть их в zip-файлах. Версия находится в поле AppVersion файла app.xml.

Смежные вопросы