Коли слід використовувати формати xlsm або xlsb?


106

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

Звичайно, ви можете знайти деякі теми в Інтернеті, наприклад:

Що я зрозумів з цього останнього посилання, це те, що .xlsmце якийсь формат XML і, таким чином, необхідний для спеціальної вкладки стрічки.

Крім концептуальної різниці між форматом ( .xlsmзаснований на XML VS .xlsb- це двійковий файл), чи є якась практична різниця при використанні будь-якого цього файлу (крім налаштування стрічки)?
Чи бачили ви коли-небудь реальну різницю при використанні будь-якого з цих форматів?


3
xlsb зазвичай менший, ніж xlsm
Чарльз Вільямс

Тут є корисна інформація - analystcave.com/…
Кріс,

1
Чомусь за допомогою .xlsb over .xlsm було вирішено деякі проблеми, які виникли у нас із визначеною користувачем функцією, створюючи фантомні об’єкти в об'єктній моделі: superuser.com/questions/1005482/…
SuMau

Відповіді:


62

Всі вони схожі тим, що по суті вони поштові файли, що містять фактичні компоненти файлу. Ви можете бачити вміст, просто замінивши розширення на .zip та відкривши їх. Відмінність від xlsb здається в тому, що компоненти не на основі XML, а у двійковому форматі: нібито це вигідно при роботі з великими файлами.

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


.xls файли були бінарними у форматі. Файли .xlsb зберігають цей двійковий формат для новіших офісних версій. Існує і різниця в розмірах, і швидкість вигоди для зберігання даних у двійковому форматі, хоча поліпшення будуть відмічені лише В ДУЖЕ великих файлах.
music2myear

90

.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-to-1: Стаття в блозі від 2006-08-07


2
лише одне випробування, але міністр (1) не має результатів, хоча: - \
Good Person

2
Я підтверджую, що один із моїх файлів із власною стрічкою працює відмінно в xlsb.
Девід Г

5
@PatrickLepelletier .xlsxсхожий .xlsm, лише з вимкненими макросами. Обидва є на основі XML. На відміну від цього, .xlsbє двійковим. Тож слід прочитати питання як "{.xlsx / .xlsm} versus .xlsb". (Немає макровідключеної версії бінарного файлу .xlsb.)
Аарон Тома

4
Якщо xlsb краще, чому xlsx є типовим? Має бути якийсь недолік для xlsb?
PProteus

3
@PProteus, просто поставити xlsb краще в певній області. Вся ідея впровадження стандарту XML полягала в тому, щоб бути більш прозорими, що робить файли більш портативними, а маніпуляції файлами - простішими. Тепер інструменти сторонніх розробників можуть правильно читати / записувати файли Excel (я знаю, вони могли це зробити за допомогою зворотної інженерії, але це було схильним до помилок). З іншого боку, використання великих файлів Excel насправді не є основним використанням Excel, тому компенсація на те, щоб бути більш портативною, невелика. Крім того, використання файлу без макросу певною мірою підвищує захист. Для порівняння, навіщо турбуватися з Java, якщо Assembler краще?
Істер

9

Можна подумати, що xlsb має лише переваги перед xlsm. Справа в тому, що xlsm заснований на XML, а xlsb є двійковим - це те, що при пошкодженні робочої книги ви маєте кращі шанси відновити xlsm, ніж xlsb.


1
Якщо це правда, то xlsm - це для мене. Мене прокляли зіпсовані файли Excel з середини кінця 90-х. Це було майже достатньо, щоб змусити мене зайнятися копанням канави на життя. Office 2000 була першою версією з функцією відновлення файлів. Але я не
вважаю

Розширення файлів XLSX та XLSM набагато, значно стабільніші, ніж розширення файлів Excel XLS до 2007 року.
Феліпе Коста Гуальберто

8

Тільки для нащадків, ось текст із кількох зовнішніх джерел щодо форматів файлів Excel. Деякі з них були згадані в інших відповідях на це питання, але не відтворюючи суттєвого змісту.

1. С Дог Маху, 22 серпня 2006 р . :

... новий бінарний формат XLSB. Як і Open XML, це формат файлів повної вірності, який може зберігати все, що ви можете створити в Excel, але формат XLSB оптимізований для продуктивності способами, які неможливі в чистому форматі XML.

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

Ця стаття також стосується документації про формат BIN , занадто тривалої для відтворення тут.

2. З архіву MSDN, 29 серпня 2006 р., Який, у свою чергу, цитує вже відсутніх публікацій блогу щодо формату XLSB:

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

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


5

Формат 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-файлі) ... :)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.