Определение различных форматов файлов Excel

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

Ответов (2)

Формат файла Excel называется двоичным форматом файла обмена (BIFF). Существуют разные версии Excel, которые используют одну и ту же версию BIFF.

Откройте документ Office в формате файла Excel .

Взгляните на Open Office API , это должно вам помочь.

Книги Excel 97-2003 известны как Biff8. На самом деле они представляют собой составные документы OLE, которые, по сути, представляют собой файловую систему в файле. Они хранят основную книгу в потоке с именем «Workbook», и у них есть другие потоки для модулей VBA, объектов OLE, свойств документа и т. Д.

Win32 включает API-интерфейсы для чтения составных документов OLE. Они далеко не тривиальны. Как только вы получите поток «Workbook», первая запись Biff идентифицирует файл как файл Excel.

Вы можете найти отличную документацию от Microsoft по формату файлов Biff8 на странице форматов двоичных файлов Microsoft Office .

Новый формат Excel 2007 Open XML (xlsx) на самом деле представляет собой zip-файл с частями книги и задокументирован на OpenXmlDeveloper.org .

Мне неизвестен инструмент, который просто сообщит вам формат книги. Вы можете воспользоваться простым, но не очень надежным подходом, просто взглянув на расширение, которое будет правильным в 99% + случаев - если точность не является проблемой.

Существует множество инструментов для чтения книг xls и xlsx, в том числе SpreadsheetGear для .NET, который читает оба.

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