Программный поиск Excel-версии файла Excel - PullRequest
2 голосов
/ 15 января 2010

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

"Поставщик = Microsoft.Jet.OLEDB.4.0; Источник данных = C: \ Book1.xls; Расширенные свойства =" Excel 8.0 ; HDR = ДА "

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

Заранее спасибо,

Т.

Ответы [ 2 ]

3 голосов
/ 15 января 2010

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

xls файлы: они сохраняются как структурированное хранилище . Вы можете использовать метод из статьи здесь: Как определить, какая версия Excel написала книгу

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

2 голосов
/ 15 января 2010

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

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