Когда следует использовать форматы xlsm или xlsb? - PullRequest
99 голосов
/ 19 октября 2011

Начиная с Excel 2007, Microsoft разделила классический формат .xls на несколько форматов (в частности, .xlsx, .xlsm, .xlsb). У меня нет проблем с пониманием использования и цели формата .xlsx, но я все еще задаюсь вопросом, следует ли нам использовать формат .xlsm или .xlsb при создании файла, содержащего некоторый VBA.

Конечно, вы можете найти некоторые темы в Интернете, например:

Из этой последней ссылки я понял, что .xlsm - это какой-то формат XML, и, следовательно, он необходим для пользовательской вкладки ленты.

За исключением концептуальной разницы в формате (.xlsm основан на XML VS .xlsb - это двоичный файл), есть ли практическая разница при использовании любого из этих файлов (кроме настройки ленты)?
Вы когда-нибудь видели реальную разницу при использовании любого из этих форматов?

Ответы [ 5 ]

84 голосов
/ 10 марта 2012

.xlsx загружается в 4 раза дольше, чем .xlsb, сохраняет в 2 раза дольше и в 1,5 раза больше файла. Я проверил это на сгенерированном рабочем листе с 10 000 строк * 1 000 столбцов = 10 000 000 (10 ^ 7) ячеек простых цепочек =…+1 формул:

╭──────────────╥────────┬────────╮
│              ║ .xlsx  │ .xlsb  │
╞══════════════╬════════╪════════╡
│ loading time ║ 165s   │  43s   │
├──────────────╫────────┼────────┤
│ saving time  ║ 115s   │  61s   │
├──────────────╫────────┼────────┤
│ file size    ║  91 MB │  65 MB │
╰──────────────╨────────┴────────╯

(аппаратное обеспечение: Core2Duo 2,3 ГГц, 4 ГБ ОЗУ, 5,400 об / мин SATA II HD; Windows 7, при несколько большой нагрузке от других процессов.) Кроме этого, не должно быть различий. Точнее,

оба формата поддерживают одинаковый набор функций

цитирует этот блог сообщение от 2006-08-29. Поэтому, возможно, информация о том, что .xlsb не поддерживает код ленты, новее, чем верхняя цитата, но я полагаю, что ваш источник на форуме просто неверен. При взломе двоичного файла кажется, что он сжато имитирует файловую структуру OOXML 1-к-1: Блог статья от 2006-08-07

60 голосов
/ 19 октября 2011

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

https://blogs.msdn.microsoft.com/dmahugh/2006/08/22/new-binary-file-format-for-spreadsheets/

9 голосов
/ 29 ноября 2015

Можно подумать, что xlsb имеет только преимущества перед xlsm.Тот факт, что xlsm основан на XML, а xlsb - двоичен, заключается в том, что при повреждении книги у вас больше шансов восстановить xlsm, чем xlsb.

6 голосов
/ 03 апреля 2017

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

1. От Дуг Махуг, 22 августа 2006 г. :

... новый двоичный формат XLSB. Как и Open XML, это формат файла полной точности, в котором можно хранить все, что вы можете создать в Excel, но формат XLSB оптимизирован для производительности способами, которые не возможно с чистым форматом XML.

Формат XLSB (также иногда называемый BIFF12, как в «двоичном формат файла для Office 12 ») использует ту же Конвенцию Open Packaging используется форматами Open XML и XPS. Так что это в основном ZIP контейнер, и вы можете открыть его с помощью любого инструмента ZIP, чтобы увидеть, что внутри. Но вместо .XML-частей в пакете вы найдете .BIN-части ...

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

2. От Архив MSDN, 29 августа 2006 г. , который, в свою очередь, ссылается на уже отсутствующее сообщение в блоге о формате XLSB:

Несмотря на то, что мы проделали большую работу, чтобы убедиться, что наши форматы XML открывать быстро и эффективно, этот двоичный формат еще более Эффективно открывать и сохранять в Excel и может привести к некоторой производительности улучшения для книг, которые содержат много данных, или которые требует много парсинга XML во время процесса открытия. (На самом деле, мы обнаружил, что новый двоичный формат быстрее, чем старый формат XLS в много случаев.) Кроме того, нет версии без макросов этого формата файла - все файлы XLSB могут содержать макросы (VBA и XLM). Во всех остальных С уважением, это функционально эквивалентно формату файла XML выше:

Размер файла - размер файла обоих форматов примерно одинаков, так как оба формата сохраняются на диск с использованием архитектуры сжатия zip - оба формата используют одинаковую структуру упаковки, и оба имеют одинаковую частичные структуры. Поддержка функций - оба формата поддерживают точно тот же набор функций производительности во время выполнения - после загрузки в память, формат файла не влияет на скорость приложения / вычисления Конвертеры - оба формата будут иметь одинаковую поддержку конвертеров

5 голосов
/ 26 января 2015

Формат XLSB также предназначен для макросов, встроенных в скрытый файл рабочей книги, расположенный в папке запуска Excel (XLSTART).

Быстрый и грязный тест с xlsm или xlsb в папке XLSTART:

Measure-Command { $x = New-Object -com Excel.Application ;$x.Visible = $True ; $x.Quit() }

0,89 с xlsb (двоичным) и 1,3 с тем же содержимым в формате xlsm (xml в zip-файле) ...:)

...