В каком формате по умолчанию создаются документы microsoft office excel 2007

Обновлено: 04.07.2024

Как в Эксель расширение файла выбрать: полезные советы

Привет, друзья. Сегодня хочу поговорить о форматах файлов Excel. Когда вы сохраняете рабочую книгу, программа предлагает вам выбрать формат, в котором будет храниться файл. Как выбрать подходящий, а какой выбирать не нужно? Чтобы сделать правильный выбор – читайте этот пост.

Важно знать, что файл Excel 2007 и более поздних версий кардинально отличается от ранних версий программы. Например, документ Microsoft Excel 2003 имел расширение xls, но, начиная с пакета Microsoft Office 2007, разработчики обновили программу, дали ей новый интерфейс и расширение xlsx. Файлы старого образца в материалах этого блога я не буду затрагивать, а вот обновленный – рассмотрим подробно.

Конвертер xlsx в xls

Файлы нового образца старые версии Excel открыть не могут. Если вы используете MS Excel в редакции более ранней, чем Office 2007, разработчики предлагают вам пакет совместимости, который позволит открывать книги с расширением xlsx и сохранять подобные документы. К сожалению, это не расширяет функционал программы, и вам не будут доступны обновленные инструменты. Тем не менее, мы получаем возможность открыть любой документ, независимо от версии Майкрософт Офис.

Выбираем формат файла Excel

Как я уже говорил ранее, при сохранении рабочей книги, вы можете выбрать формат файла, и сейчас я опишу самые популярные из них (на примере Microsoft Excel 2013):

Формат файла Excel

  • Книга Excel – сохраняет документ с расширением xlsx без поддержки макросов. Если в рабочей книге есть макросы – они удаляются. Самый обычный документ Excel
  • Книга Excel с поддержкой макросов – сохраняет в формате xlsm, макросы разрешены
  • Двоичная книга Excel – выбирайте этот пункт, если у вас огромный файл, который вы будете использовать только в Эксель. Такие книги быстрее загружаются, занимают меньше места на жёстком диске, но могут быть проблемы в совместной работе с другими приложениями
  • Книга Excel 97-2003 – документ старого формата с расширением xls. Применяйте, если файл будет использоваться в Excel старше, чем 2007
  • XML-данные – сохраняется в формате XML, если такая информация есть на рабочих листах
  • PDF – сохраняет вашу табличку в формате PDF, что удобно, например, для электронной рассылки

Другие типы файлов применяются реже, можете спрашивать о них в комментариях, отвечу на ваши вопросы.

Хочу добавить, что файлы xlsx занимают на жёстком диске на порядок меньше места, чем xls. Если вы используете MS Office 2007 или новее, можно сохранить документы xls в новом формате, чтобы сэкономить дисковое пространство.

Проверка совместимости файлов Эксель

Когда вы используете Microsoft Excel нового образца (начиная с Office 2007), а сохраняете файл в устаревшем формате xls, некоторые элементы расчетов или оформления могут быть потеряны, т.к. их не поддерживают предыдущие версии программы. Поэтому, перед каждым подобным сохранением пользуйтесь проверкой совместимости

Проверка совместимости файлов Эксель

Для этого, выполните Файл – Сведения – Проверка книги – Проверка совместимости . Программа отобразит окно со списком функций, которые не поддерживается, в комментарии будет указано, как себя поведёт программа, если не принять мер по обеспечению совместимости.

Если программа нашла ошибки совместимости – вам нужно на них отреагировать. Вы можете заменить неподдерживаемые формулы и функции, либо удалить их. Если оставить всё, как есть – это может изменить результаты расчетов и привести к серьёзным ошибкам.


Окно проверки совместимости

Правильный выбор типа файла при сохранении позволит вам избежать проблем совместимости и потери данных.Я рекомендую не использовать Excel старого образца и, тем более, не сохранять свои проекты в их форматах. Пожалуй, порекомендую делать проверку совместимости для всех документов, ведь с каждой новой редакцией программы, добавляются новые функции. Например, если вы пользуетесь срезами в Excel 2013, то Эксель 2007 и 2010 этот инструмент не поддерживают, у вас будут проблемы. Главное — инструмент проверки даёт все возможности оценить возможные сложности с открытием в других версиях программы.

На этом я закончу рассматривать типы файлов Эксель. Если у вас остались вопросы по теме поста – пишите в комментариях, постараюсь ответить быстро.

Спасибо за прочтение этой статьи. Следующий пост будет о защищенном режиме просмотра. Обязательно прочтите, от этого зависит безопасное использование вашей информации!

Пользовательские форматы в Excel

Пользовательские форматы в Excel

На вопрос о возможностях форматов почти всегда слышен ответ: «Да что там такого-то?». На самом деле есть очень даже большое ЧТО. Поехали.

Сначала немного теории — формат ячеек в Excel позволяет настраивать внешний вид данных, вплоть до их сокрытия или отображения по условию. Все мы знаем про «Общий, «Текстовый», «Числовой», «Финансовый», «Процентный», «Дата», «Время» форматы. Но что будет, если заглянуть в настройку формата ячеек в момент после установки того или иного формата? Вызвать диалоговое окно «Формат ячеек» можно сочетанием клавиш Ctrl+1.

Рассмотрим небольшую таблицу соответствия для составления «синтаксиса» текстового формата ячеек (если мы хотим дописать к данным в ячейке текст обязательно заключить его в двойные кавычки «»!).


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

Пример №1

Задача- есть таблица, в которой зелёным цветом шрифта должны быть выделены положительные значения с надписью «Сверх», 0 должны быть синими «Ровно», а отрицательные значения должны быть красными «Недостаток».


Совершим подряд несколько действий:

  • выделяем нужные ячейки (в нашем случаем с B2 до B6);
  • открываем диалоговое окно «Формат ячеек» (Ctrl+1);
  • выбираем слева в поле «Числовые форматы» вариант — (все форматы);
  • справа в поле тип стираем вариант «Основной»;
  • записываем нужный формат для отображения данных — [Зеленый]+0″ Сверх»;[Красный]-0″ Недостаток!»;[Синий]0″ Ровно».


В итоге получим вот такую таблицу:


То есть фактически данные не были изменены (к ним ничего не добавлялось), но тем не менее отображаются они теперь по другому.

Пример №2

В таблице с данными нужно отобразить только текстовые данные. Забегая назад скажу — ;;; (подряд три точки с запятой скрывают данные в ячейке). Т.е. нам нужно чтобы скрылось всё, кроме текста.


  • выделяем нужные ячейки (в нашем случаем с B2 до B6);
  • открываем диалоговое окно «Формат ячеек» (Ctrl+1);
  • выбираем слева в поле «Числовые форматы» вариант — (все форматы);
  • справа в поле тип стираем вариант «Основной»;
  • записываем нужный формат для отображения данных — ;;;@.

Таблица станет такой:


Таким образом с помощью собственного формата данных можно здорово облегчить работу с данными!

Всем удачи и подписывайтесть на наш телеграм КАНАЛ.

Вас может заинтересовать предыдущая статья.

Пользовательские форматы в Excel


В появившееся справа поле Тип: введите маску нужного вам формата из последнего столбца этой таблицы:


Как это работает.

На самом деле все очень просто. Как Вы уже, наверное, заметили, Excel использует несколько спецсимволов в масках форматов:

Плюс пара простых правил:

Применение пользовательских форматов


Создание пользовательских форматов

Excel позволяет создать свой (пользовательский) формат ячейки. Многие знают об этом, но очень редко пользуются из-за кажущейся сложности. Однако это достаточно просто, главное понять основной принцип задания формата.

Для того, чтобы создать пользовательский формат необходимо открыть диалоговое окно Формат ячеек и перейти на вкладку Число. Можно также воспользоваться сочетанием клавиш Ctrl + 1.


В поле Тип вводится пользовательские форматы, варианты написания которых мы рассмотрим далее.


В поле Тип вы можете задать формат значения ячейки следующей строкой:


Какие цвета можно применять

В квадратных скобках можно указывать один из 8 цветов на выбор:

Синий, зеленый, красный, фиолетовый, желтый, белый, черный и голубой.

Далее рассмотрим коды форматов в зависимости от типа данных.

Числовые форматы

Форматы даты

Форматы времени

Аналогичные форматы есть и для времени.

Текстовые форматы

Текстовый форматов как таковых не существует. Иногда требуется продублировать значение в ячейке и дописать в начало и конец дополнительный текст. Для этих целей используют символ @.

Создание пользовательских форматов для категорий значений

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

  1. Положительные числа
  2. Отрицательные числа
  3. Нулевые значения
  4. Текстовый формат

Для этого мы можем в поле Тип указать следующую конструкцию:

Формат положительных значений ; отрицательных ; нулевых ; текстовых

Соответственно для каждой категории можно применять формат уже описанного нами вида:

В итоге конечно может получится длинная строка с форматом, но если приглядеться подробнее, то сложностей никаких нет.


Редактирование и копирование пользовательских форматов

Чтобы отредактировать созданный пользовательский формат необходимо:

  1. Выделить ячейки, формат которых вы хотите отредактировать.
  2. Открыть диалоговое окно Формат ячеек и перейти на вкладку Число. Можно также воспользоваться сочетанием клавиш Ctrl + 1.
  3. Изменить строку форматирования в поле Тип.

Распространить созданный пользовательский формат на другие ячейки можно следующими способами:

Для удаления установленного формата ячейки, можно просто задать другой формат или удалить созданный из списка:

Microsoft Excel

трюки • приёмы • решения

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

Возможно, одну из наиболее сложных проблем в Excel представляет почти ошеломляющее количество форматов файлов, с которыми он может работать. С появлением Excel 2007 все стало еще более запутанным, поскольку в этой версии появилось несколько новых форматов. В этой статье описываются новые форматы файлов, которые используются Excel, начиная с Excel 2007.

Распознаем новые форматы файлов Excel

Новые форматы файлов Excel:

  • XLSX — файл книги, которая не содержит макросов;
  • XLSM — файл книги, которая содержит макросы;
  • XLTX — файл шаблона книги, которая не содержит макросов;
  • XLTM — файл шаблона книги, которая содержит макросы;
  • XLSA — файл надстройки;
  • XLSB — двоичный файл, подобный старому формату XLS, но способный вмещать в себя новые возможности;
  • XLSK — файл резервной копии.

За исключением XLSB, все это открытые форматы файлов XML, а это значит, что другие приложения смогут читать такие типы файлов и производить в них запись.

XML-файлы — это сжатые архивом ZIP текстовые файлы. Если вы переименуете один из этих файлов так, чтобы он имел расширение ZIP, то сможете проанализировать его содержимое с помощью любой утилиты для файлов ZIP — в том числе и встроенной в Windows поддержки этих файлов.

Пакет обеспечения совместимости Office

Как правило, пользователи, работающие с более ранней версией Excel, не имеют возможности открывать книги, которые были сохранены в новых форматах файлов Excel. Но, к счастью, компания Microsoft выпустила бесплатный пакет обеспечения совместимости для Office 2003 и Office ХР (Compatibility Pack).

Пользователи Office 2003 или Office ХР, которые устанавливают пакет обеспечения совместимости, смогут открывать у себя файлы, созданные в Office 2007 и Office 2010, а также сохранять файлы в новых форматах. Пакет обеспечивает совместимость для следующих программ Office: Excel, Word и PowerPoint. Чтобы загрузить вышеупомянутый пакет обеспечения совместимости, выполните поиск в Интернете по словам Microsoft Office Compatibility Pack.

Сохранение файла для использования в более старой версии Excel

Чтобы сохранить файл для его последующего использования в более старой версии Excel, выберите Файл ► Сохранить как и укажите в раскрывающемся списке один из следующих типов.

  • Книга Excel 97-2003 (*.xls) — если файл будет использован теми, у кого установлены Excel 97, Excel 2000, Excel 2002 или Excel 2003.
  • Книга Microsoft Excel 5.0/95 (*.xls) — если файл будет использован теми, у кого установлены Excel 5 или Excel 95.

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

Если книга будет применяться только теми, у кого установлен пакет обеспечения совместимости, вам не нужно сохранять ее, указывая старые форматы файлов. Тем не менее будет полезно запустить проверку совместимости, чтобы убедиться в том, что вы не используете функции, которые не поддерживаются в более ранних версиях Excel. Чтобы проверить потенциальные проблемы совместимости в активной книге, выберите Файл ► Сведения ► Поиск проблем ► Проверка совместимости.

Если вы хотите использовать один из старых форматов файлов в качестве формата по умолчанию, выберите Файл ► Параметры и перейдите в раздел Сохранение. Укажите формат файла по умолчанию в раскрывающемся списке Сохранять файлы в следующем формате.

Excel works!

Excel работает за вас


Excel works!

Thanks for Visiting


Расширение файлов Excel

Меня часто спрашивают, зачем в Excel множество форматов файлов? А выбор действительно большой. Давайте разберемся поподробнее, для чего нужны разные расширение файлов Excel. Большинство типов файлов действительно полезны!

1. Расширение файлов Excel. Чем отличается *.xlsx от *.xls?

Сперва ответим на самый распространенный вопрос

Файл с расширением *.xlsx — это формат подавляющего большинства файлов Excel на настоящий момент. Появился начиная с версии 2007. Как говорит нам википедия: это набор *.xml файлов, помещенный в архив.

Файл с расширением *.xls — это формат всех файлов версии Excel 2003 и раньше. Он не является архивом. Имеет меньше возможностей, работает медленнее.

2. Формат с поддержкой макросов в Эксель

Расширение *.xlsm — Расширение файлов Excel 2007 и выше. Способен хранить в себе макросы . Т.е. программный код на языке VBA (Visual Basic for Applications), подробнее читайте здесь.

3. Двоичная книга Excel. *.xlsb

Расширение *.xlsb — это, объективно, самый удобный формат Excel. Это расширение позволяет уменьшать размер файла примерно в два раза, а убыстряет его работу где-то в полтора раза. Дело в том, что это документ хранящий информацию в бинарном коде, что позволяет быстрее работать с форматом .XML. Расширение просто не заменимо когда вы работаете с файлом с десятками тысяч строк (сохраните файл как Двоичная книга Excel (см. первую картинку). Тотальный разбор, от чего может тормозить Excel, читайте здесь .

Почему тогда все не пользуются этим форматом, если он такой хороший? Потому что ни один редактор не сможет открыть его, только Excel, т.е. теряется универсальность использования. Наприме, вы не откроете его онлайн или его не прочитает большинство альтернатив Excel.

Но, к сожалению, просто большинство пользователей никогда не слышало о *.xlsb.

4. Расширение *.xltx

Это формат для сохранения шаблонов. Скоро будет отдельная статья по этой теме. Макросы не сохраняет, для этого есть формат *.xltm — тоже самое, но с макросами.

5. Расширения *.xlam и *.xla

Форматы для cохранения надстроек в 2007 и выше и 2003 и ниже соответственно. Очень пригодятся, если нужно запускать макрос из любой книги.

Если вам попался формат .xlс — то это формат для сохранения диаграмм в Excel 2003. Формат — большая редкость и уже не поддерживается новыми версиями программы. Так же как и форматы WK1 и выше и форматы постепенно отмирающей Lotus 1-2-3.


Расширение файла находится в конце файла, что помогает определить тип файла в операционной системе. В Microsoft Windows расширение файла - это период, за которым часто следуют один, два, три или четыре символа.

Например, имя файла «XYZ.doc» имеет расширение «.doc», которое является расширением файла, связанным с файлом документа.

Расширения файлов Excel могут быть разных типов. Здесь мы рассмотрим наиболее распространенный тип файла:

Это расширение является наиболее распространенным типом по умолчанию в электронной таблице, созданной офисом Microsoft. До Excel 2007 расширение файла было XLS. Это расширение относится к файлу, который содержит все типы информации, включая данные, форматы, графику и т. Д. Операционная система распознает тип файла с помощью расширения и управляет этим файлом с помощью приложения Excel.

XLS является типом файла по умолчанию для Excel версии 2.0 до Excel 2003.

Это расширение используется файлами электронных таблиц, созданными в Excel версии 2007 года. Для файла Excel текущее расширение файла по умолчанию - XLSX.

XSLX - это формат файла на основе XML. При использовании этой технологии файл с форматом XSLX имеет меньший вес или размер, и по сравнению с форматом файла XLS это приводит непосредственно к экономии места. Это требует меньше времени для загрузки или загрузки документов Excel.

Единственным недостатком этого расширения XSLX является то, что эта версия несовместима для запуска файлов до Excel 2007.

Этот тип файла расширения генерируется электронной таблицей с Excel версии 2007 года, включая макросы Excel.

С помощью расширения легко понять, что файл содержит макрос. Из-за соображений безопасности и защиты файла с помощью компьютерных вирусов, вредоносных макросов, заражения компьютеров и т. Д. Эта версия появляется.

Это расширение файла очень надежно с точки зрения макросов и по соображениям безопасности.

Если файлы Excel содержат большой объем данных или информации, этот тип расширения полностью поддерживается в процессе сжатия, сохранения, открытия и т. Д.

Файл Excel, который содержит большой объем данных, занимает много времени при открытии и обработке этого файла. Иногда при вскрытии его вешают и часты аварии.

Как изменить формат файла Excel или расширение?

Для изменения расширения файла выполните следующие действия:

  • Откройте книгу, для которой вы хотите изменить формат.
  • Перейдите на вкладку ФАЙЛ .


  • Откроется окно левой панели. На этой панели доступно много вариантов. Смотрите скриншот ниже.


  • Нажмите на опцию Сохранить как, как показано ниже.



  • Теперь вам нужно выбрать, куда вы хотите сохранить файл в системе. Смотрите скриншот ниже.


  • Я выбрал рабочий стол для сохранения этого файла в качестве места назначения.


  • В поле «Имя файла» укажите имя файла для книги.


  • В поле « Сохранить как тип» нам нужно выбрать формат файла.
  • Нажмите Save as type filed, откроется список формата, как показано на скриншоте ниже.


  • Выберите формат файла и нажмите кнопку « Сохранить» для сохранения файла.


Как узнать тип сохраняемого файла?

Для этого выполните следующие шаги:

  • Выберите файл, для которого вы хотите знать формат файла.
  • Щелкните правой кнопкой мыши по этому файлу.
  • Откроется раскрывающийся список параметров.
  • Нажмите на опцию Свойства из списка. Смотрите скриншот ниже.


  • Откроется окно свойств.
  • Под опцией Тип файла вы можете увидеть тип файла или расширение файла. Смотрите скриншот ниже.


Что нужно помнить о форматах файлов Excel

  • Все форматы файлов не поддерживают все функции Excel, такие как формулы и т. Д., Поэтому будет отображаться окно с предупреждением.
  • Затем вы можете изменить формат файла снова.

Рекомендуемые статьи

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

В Microsoft Office 2007 введен новый формат файлов, основанный на языке XML . По умолчанию документы, создаваемые в Excel 2007, сохраняются с новым расширением имени файла, которое получается путем добавления суффикса " x " или " m " к привычному расширению. Суффикс " x " указывает на то, что XML - файл не содержит макросов, а суффикс " m " – что XML - файл макросы содержит. Таким образом, имена обычных файлов Excel 2007 имеют расширение xlsx , а не xls .

XML -форматы предоставляют целый ряд преимуществ – не только для разработчиков и создаваемых ими продуктов, но также для отдельных пользователей и организаций.

Файлы автоматически сжимаются, и в некоторых случаях их размер может сокращаться на 75 процентов по сравнению с предыдущими версиями Excel .

Новый формат обеспечивает улучшенное восстановление поврежденных файлов. Файлы построены по модульному принципу, при котором разные компоненты данных хранятся в файле отдельно друг от друга. Это позволяет открывать файлы даже при разрушении или повреждении какого-либо компонента файла (например, диаграммы или таблицы).

Обеспечивается более легкое обнаружение документов, содержащих макросы. Файлы, которые сохраняются с расширением xlsx , не могут содержать макросы, написанные на языке VBA ( Visual Basic для приложений) или элементы управления ActiveX, следовательно, в них отсутствует угроза безопасности, связанная с такого рода внедренными кодами. Только файлы, с расширением xlsm могут содержать макросы на языке VBA и элементы управления ActiveX, хранящиеся в обособленных частях файла. Различные расширения имен файлов позволяют легко отличать файлы, содержащие макрос , от файлов, которые его не содержат, и облегчают обнаружение антивирусными программами файлов, содержащих потенциально опасный код. Кроме того, системные администраторы могут заблокировать документы, содержащие нежелательные макросы или элементы управления , что повышает безопасность открытия документов.

Следует отметить, что файлы новых форматов недоступны для работы в предыдущих версиях Excel . Для того чтобы можно было открывать и изменять файлы Excel 2007 в более ранних версиях, в них следует загрузить необходимые конвертеры файлов.

Окна для работы с файловой системой в Excel 2007

Многочисленные окна для работы с файловой системой в Excel 2007, выглядят примерно одинаково. Внешний вид этих окон зависит от операционной системы. Некоторые из окон при работе в операционной системе Windows Vista показаны на рис. 2.1,

Размер окна можно изменить перетаскиванием его границ. При уменьшении размера окна могут скрываться некоторые его элементы.

В верхней части окна в поле с раскрывающимся списком (1 на рис. 2.2) отображается имя текущей папки и имя (имена) вышерасположенных папок. Например, на рис. 2.2 текущей папкой является папка ИНТУИТ , которая расположена в папке Открытые системы .


увеличить изображение
Рис. 2.2. Элементы окна для работы с файловой системой

Для перехода в вышерасположенную папку достаточно щелкнуть по ее имени. Если щелкнуть по стрелке справа от имени папки, будет отображен список всех содержащихся в ней папок (рис. 2.3). Для перехода в нужную папку достаточно щелкнуть по ее имени.


увеличить изображение
Рис. 2.3. Просмотр списка и переход в вышерасположенные папки

Если щелкнуть по двойной стрелке в левой части поля, будет отображен список вышерасположенных папок и специальных папок Windows (рис. 2.4). Для перехода в нужную папку достаточно щелкнуть по ее имени.

На прошлой неделе Microsoft опубликовала спецификации форматов бинарных файлов для Office. Эти форматы выглядят безумно. Формат файла Excel 97-2003 представляет собой 349-страничный файл PDF. И это ещё не всё! В документе содержится такой комментарий:

Каждый лист [workbook] в Excel хранится в составном файле.

Видите ли, файлы Excel 97-2003 – это составные документы OLE, которые в свою очередь представляют собой некое подобие файловой системы в одном файле. Чтобы в этом разобраться, нужно прочитать 9 страниц документации. А сами спецификации больше похоже на структуры данных в С, чем на то, что мы привыкли называть спецификациями. Это иерархическая система файлов.

Если вы подумали, что почитаете эти форматы и за выходные набросаете утилитку для экспорта вордовских документов в свой блог, или создающую экселевские таблички на основе ваших персональных финансовых данных, то сложность и длина этих спецификаций должны были отбить у вас всю охоту. Нормальный программист решит, что формат бинарников из Office:

  • сделан запутанным специально
  • придуман каким-то страдающим от старческого маразма представителем кибернетической расы боргов
  • создан безумно плохими программистами
  • не может быть правильно создан или прочитан

Первое, что нужно понять – цели у разработчиков форматов бинарников кардинально отличались от целей разработчиков, допустим, HTML.

Они должны были очень быстро работать на очень старых компьютерах. Во времена первых версий Excel для Windows 1 мегабайт памяти был не редкостью, а работать достаточно комфортно программа должна была на процессорах 80386 с частотой 20 МГц. Множество оптимизаций сделано для ускорения открытия и сохранения файлов:

  • Это форматы бинарных файлов, поэтому загрузка записи обычно означает копирование последовательности байтов с диска в память, в которой появляется структура данных С. Не происходит никакого разбора или лексического анализа данных, так как это в разы медленнее простого копирования.
  • Формат файлов запутан в нужных местах для ускорения типичных операций. К примеру, у Excel 95 и 97 была функция «простого сохранения», которая использовалась в качестве ускоренного варианта документа OLE, полная версия которого была не слишком быстрой для повсеместного использования. У Word было нечто подобное под названием "быстрое сохранение". Для быстрого сохранения длинных документов 14 раз из 15 все изменения просто добавлялись в конец файла, а весь файл не перезаписывался с нуля. Для жёстких дисков того времени это означало, что можно было успеть сохранить документ, допустим, за 1 секунду вместо 30. Также это означало, что удалённые части документа всё ещё хранились в файле – а людям, как оказалось, это не было нужно.

У Office была поддержка составных документов, к примеру, можно было включить электронную таблицу в файл Word. Идеальный парсер Word должен был суметь сделать что-то умное с включённой таблицей.

Они не разрабатывались для использования в других приложениях. Довольно разумное на тот момент предположение заключалось в том, что формат Word будет писать и читать только программа Word. Поэтому когда программист из команды разработчиков Word принимал решение о смене формата файла, его волновали лишь а) скорость работы и б) минимальное количество строк в коде Word. Идеи вещей типа SGML и HTML, заменяемых, открытых и стандартизированных форматов, не были популярными, пока интернет не сделал такие вещи практичными. Этот момент пришёл через 10 лет после разработки форматов файлов Office. Всегда предполагалось использование программ для экспорта и импорта. У Word есть поддержка формата для простого обмена документами по имени RTF, существовавшего почти с самого начала.

Им нужно было отразить всю сложность приложений. Каждую галочку, каждую возможность форматирования и каждую функцию Microsoft Office необходимо было хранить в файлах. Поэтому для создания идеального клона Word, читающего его файлы, нужно было реализовать все его функции. Если вы создаёте программу для работы с текстом – конкурента Word, которая должна уметь загружать его файлы, у вас может занять немного времени сама загрузка указанных в файле опций. Но реальное отображение их всех на странице – это задача более сложная. А если её не решить, то ваши клиенты откроют вордовский файл в вашем клоне, и всё форматирование может поломаться.

Им нужно было отражать историю развития программ. Множество сложных вещей в форматах – это старые, сложные, ненужные и редко используемые функции. Они присутствуют там лишь для обратной совместимости и потому, что для разработчиков ничего не стоит оставить код в покое. Но чтобы тщательно выполнить работу разборки или записи этих файлов, вам придётся повторить всю эту работу, что была проделана в Microsoft за 15 лет. В текущие версии Word и Excel вложены тысячи человеко-часов работы, и для клонирования этих программ вам придётся вложить свои тысячи человеко-часов. Формат файла – это просто краткое обобщение всех поддерживаемых приложением функций.

Просто для примера разберём одну возможность подробнее. Лист Excel – это набор разных записей BIFF. Рассмотрим самую первую запись в спецификации – это запись под именем 1904.

В спецификации об этой записи написано весьма туманно. Просто написано, что «запись 1904 показывает, используется ли система дат 1904». Классический пример бесполезной спецификации. Если бы вы были разработчиком, и наткнулись бы на такое «объяснение», вы бы весьма оправданно пришли к заключению, что Microsoft что-то скрывает. Такое описание недостаточно само по себе, вам нужно искать дополнительную информацию. Я поясню: существует два типа листов Excel. В одних даты начинаются с 1/1/1900 (в них же ошибка високосного года специально создана для совместимости с форматом 1-2-3), в других – с 1/1/1904. Excel поддерживает оба варианта – поскольку первая его версия, для Mac, использовала второй вариант, который был системным, а Excel для Windows должен был иметь возможность импортировать файлы 1-2-3, использовавшие даты с 1/1/1900. Уже на этом месте можно расплакаться.

Оба типа файлов, 1900 и 1904, встречаются в изобилии в дикой природе, в зависимости от того, пришли они с Mac или Windows. Автоматическая конвертация дат может привести к ошибкам, поэтому Excel сам тип файла не меняет. Для разборки файлов Excel приходится работать с обоими. А это значит, что вам не просто нужно загрузить этот бит из файла, но ещё и переписать весь код разбора и показа дат, чтобы обрабатывать оба варианта. Это работа на несколько дней.

Работая над клоном Excel вы встретите множество таких скрытых деталей по работе с датами. Когда Excel преобразовывает числа в даты? Как работает форматирование? Почему 1/31 интерпретируется как 31 января текущего года, а 1/50 – как первое января 1950? Все эти детали нельзя описать без того, чтобы получившееся описание не сравнялось по объёму с исходниками Excel.

И это только одна из сотен BIFF-записей, и одна из простейших. Большинство из них настолько сложные, что могут заставить взрослого программиста рыдать.

Единственное возможное решение будет следующим. Конечно, Microsoft оказала большую услугу, опубликовав форматы файлов, но импортировать их или сохранять в них от этого легче не будет. Это безумно сложные приложения, и вы не можете просто реализовать 20% самых популярных функций и рассчитывать, что 80% остальных людей будут счастливы. Спецификации бинарников в лучшем случае сохранят вам пару минут при реверс-инжиниринге сложной системы.

Но я обещал рассказать, что с этим делать. Почти всем популярным приложениям не нужно заниматься чтением и записью бинарников от Office. Есть две альтернативы: дать Office работать самому, или использовать более простые форматы файлов.

Пусть Office работает сам. У Word и Excel есть весьма полные модели объектов, доступные через COM Automation, благодаря чему в программе можно сделать всё. Во многих случаях лучше повторно использовать код из Office вместо попыток написать его заново. Примеры:

  • Открытие листа Excel, сохранение некоторых данных в ячейках, подсчёт и выдача результата.
  • Использования Excel для создания графиков в формате GIF
  • Вытаскивание любой информации из файла Excel без разбора форматов файлов
  • Преобразование файла Excel в CSV (другой подход – использовать драйверы Excel ODBC и забирать данные через SQL-запросы)
  • Редактирование документов Word
  • Заполнение форм в Word
  • Преобразование файлов между разными форматами, которые поддерживает Office (существуют возможности импортирования десятков форматов текстовых процессоров и электронных таблиц).

Используйте форматы попроще. Если вам просто нужно программно создать документы для Office, почти всегда есть формат получше, который затем можно свободно открыть в Word или Excel.

Читайте также: