Когда следует использовать форматы xlsm или xlsb?
92 JMax [2011-10-19 15:55:00]
Начиная с Excel 2007, Microsoft разделила классический формат .xls
на несколько форматов (в частности, .xlsx
, .xlsm
, .xlsb
). У меня нет проблем, чтобы понять использование и назначение формата .xlsx
, но мне все же интересно, следует ли использовать формат .xlsm
или .xlsb
при создании файла, содержащего некоторый VBA.
Конечно, вы можете найти некоторые темы в Интернете, например:
- on Microsoft отвечает на форум
- on Блог Microsoft, который был указан в предыдущей ссылке (но я проанализировал до 10 th страницы, не найдя ссылку на
.xlsb
) - этот раздел с другого форума
Из этой последней ссылки я понял, что .xlsm
- это какой-то формат XML и, следовательно, необходим для пользовательской вкладки ленты.
Помимо концептуальной разница между форматом (.xlsm
основана на XML VS .xlsb
является двоичным файлом), существует ли какая-либо практическая разница при использовании любого этого файла (кроме настройки ленты)?
Вы когда-нибудь видели какую-либо реальную разницу при использовании любого из этих форматов?
excel excel-2007 xlsm xlsb
6 ответов
57 Решение Tim Williams [2011-10-19 18:03:00]
Все они похожи, поскольку они представляют собой файлы zip, содержащие фактические компоненты файлов. Вы можете увидеть содержимое, просто заменив расширение на .zip и открыв их. Разница с xlsb заключается в том, что компоненты не основаны на XML, а находятся в двоичном формате: возможно, это полезно при работе с большими файлами. http://blogs.msdn.com/b/dmahugh/archive/2006/08/22/712835.aspx
78 Aaron Thoma [2012-03-10 04:13:00]
.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
6 Felipe Costa Gualberto [2015-11-29 19:40:00]
Можно подумать, что xlsb имеет только преимущества перед xlsm. Тот факт, что xlsm основан на XML и xlsb является двоичным, заключается в том, что при разрыве рабочей книги у вас есть больше шансов восстановить xlsm, чем xlsb.
4 Alexis-Emmanuel Haeringer [2015-01-26 20:31:00]
Формат XLSB также предназначен для макросов, помещенных в скрытый файл рабочей книги, расположенный в папке запуска excel (XLSTART).
Быстрый и грязный тест с xlsm или xlsb в папке XLSTART:
Measure-Command { $x = New-Object -com Excel.Application ;$x.Visible = $True ; $x.Quit() }
0,89 с xlsb (двоичный) и 1,3s с тем же содержимым в формате xlsm (xml в zip файле)...:)
4 DaveInCaz [2017-04-03 21:32:00]
Просто для потомков, здесь текст из нескольких внешних источников относительно форматов файлов Excel. Некоторые из них были упомянуты в других ответах на этот вопрос, но без воспроизведения основного контента.
1. Из Дуг Маху, 22 августа 2006 г.:
... новый бинарный формат XLSB. Подобно Open XML, его полноформатный формат файла, который может хранить все, что вы можете создать в Excel, но формат XLSB оптимизирован для производительности таким образом, чтобы возможно с чистым XML-форматом.
Формат XLSB (также иногда называемый BIFF12, как в "двоичном формат файла для Office 12" ) использует ту же самую Open Packaging Convention используемых форматами Open XML и XPS. Так что в основном это ZIP контейнер, и вы можете открыть его с помощью любого инструмента ZIP, чтобы узнать, что внутри. Но вместо .XML частей внутри пакета, вы найдете части .BIN...
В этой статье также описывается документация о формате BIN, слишком длинная для воспроизведения здесь.
2. Из Архив MSDN, 29 августа 2006 г., который, в свою очередь, цитирует уже отсутствующую запись в блоге относительно формата XLSB:
Несмотря на то, что мы провели большую работу, чтобы убедиться, что наши форматы XML открываются быстро и эффективно, этот двоичный формат еще больше эффективный для открытия и сохранения Excel, и может привести к некоторой производительности улучшения для книг, содержащих много данных, или требуют много разбора XML во время процесса Open. (На самом деле, weve что новый бинарный формат быстрее, чем старый формат XLS в многие случаи.) Кроме того, нет макро-бесплатной версии этого формата файла - все файлы XLSB могут содержать макросы (VBA и XLM). Во всех других он функционально эквивалентен формату файла XML выше:
Размер файла - размер файла обоих форматов примерно одинаковый, поскольку оба формата сохраняются на диск с использованием zip-сжатия. Архитектура - оба формата используют одну и ту же структуру упаковки, и обе имеют одинаковые структур частичного уровня. Поддержка функций - оба формата поддерживают точно тот же набор функций Runtime performance - однажды загруженный в память, формат файла не влияет на скорость приложения/вычисления Конвертеры - оба формата будут иметь идентичную поддержку конвертера.
0 SuMau [2017-06-02 13:30:00]
По какой-то причине использование .xlsb над .xlsm решило некоторые проблемы, которые мы имели с пользовательской функцией, создающей объекты phantom в объектной модели: https://superuser.com/questions/1005482/excel-creates-non-existent-worksheets-in-vba-project-explorer/1215336#1215336