Kiedy należy używać formatów xlsm lub xlsb?

106

Ponieważ Excel 2007, Microsoft podzielić klasyczny .xlsformat na kilku formatach (w szczególności .xlsx, .xlsm, .xlsb). Nie mam problemu ze zrozumieniem użycia i celu .xlsxformatu, ale nadal zastanawiam się, czy powinniśmy użyć formatu a .xlsmlub .xlsbformat podczas tworzenia pliku zawierającego VBA.

Oczywiście w sieci można znaleźć kilka tematów, na przykład:

Z tego ostatniego łącza zrozumiałem, że .xlsmjest to jakiś format XML, a zatem potrzebny do niestandardowej karty wstążki.

Czy poza koncepcyjną różnicą między formatem ( .xlsmjest oparty na XML, VS .xlsbto plik binarny ), czy jest jakaś praktyczna różnica podczas korzystania z któregokolwiek z tych plików (poza dostosowaniem wstążki)?
Czy zauważyłeś kiedykolwiek jakąś prawdziwą różnicę podczas używania któregokolwiek z tych formatów?

JMax
źródło
3
xlsb jest zwykle mniejszy niż xlsm
Charles Williams
Kilka przydatnych informacji tutaj - analystcave.com/…
Chris
1
Z jakiegoś powodu użycie .xlsb zamiast .xlsm rozwiązało niektóre problemy, które mieliśmy z funkcją zdefiniowaną przez użytkownika, tworzącą obiekty pozorne w modelu obiektowym: superuser.com/questions/1005482/ ...
SuMau

Odpowiedzi:

62

Wszystkie są podobne, ponieważ są zasadniczo plikami zip zawierającymi rzeczywiste składniki pliku. Możesz zobaczyć zawartość, zastępując rozszerzenie .zip i otwierając je. Różnica w stosunku do xlsb polega na tym, że komponenty nie są oparte na XML, ale są w formacie binarnym: przypuszczalnie jest to korzystne podczas pracy z dużymi plikami.

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

Tim Williams
źródło
Pliki .xls miały format binarny. Pliki .xlsb zachowują ten format binarny dla nowszych wersji pakietu Office. Przechowywanie danych w formacie binarnym wiąże się zarówno z różnicą wielkości, jak i szybkością, chociaż ulepszenia zostaną zauważone tylko w BARDZO dużych plikach.
music2myear
90

.xlsxładuje 4 razy dłużej niż .xlsbi zapisuje 2 razy dłużej oraz ma 1,5 raza większy plik. Przetestowałem to na wygenerowanym arkuszu z 10 000 wierszy * 1 000 kolumn = 10 000 000 (10 ^ 7) komórek prostych =…+1formuł łańcuchowych :

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

(Sprzęt: Core2Duo 2,3 GHz, 4 GB RAM, 5.400 obr./min SATA II HD; Windows 7, nieco obciążony innymi procesami).

Poza tym nie powinno być żadnych różnic. Dokładniej,

oba formaty obsługują dokładnie ten sam zestaw funkcji

cytuje ten wpis na blogu z 29.08.2006. Więc może informacja, .xlsbktóra nie obsługuje kodu wstążki, jest nowsza niż górny cytat, ale myślę, że twoje źródło forum jest po prostu błędne. Podczas otwierania pliku binarnego wydaje się, że w skondensowany sposób naśladuje strukturę pliku OOXML 1 do 1: artykuł na blogu z 07.08.2006

Aaron Thoma
źródło
2
tylko jedna próba, ale brak wyników ministatu (1): - \
Good Person
2
Potwierdzam, że jeden z moich plików z niestandardową wstążką działa dobrze w xlsb.
David G,
5
@PatrickLepelletier .xlsxjest jak .xlsm, tylko z wyłączonymi makrami. Oba są oparte na XML. W przeciwieństwie do tego .xlsbjest binarny. Dlatego powinieneś czytać pytanie jako „{.xlsx / .xlsm} kontra .xlsb”. (Nie ma wersji pliku binarnego z wyłączoną obsługą makr .xlsb.)
Aaron Thoma
4
Jeśli xlsb jest lepszy, dlaczego domyślnym jest xlsx? Xlsb musi mieć jakąś wadę?
PProteus
3
@PProteus, po prostu umieść xlsb jest lepszy w określonym obszarze. Cała idea wprowadzenia standardu XML miała być bardziej przejrzysta, dzięki czemu pliki byłyby bardziej przenośne, a manipulacja nimi była łatwiejsza. Teraz narzędzia innych firm mogą poprawnie odczytywać / zapisywać pliki Excela (wiem, że mogą to zrobić za pomocą inżynierii odwrotnej, ale było to podatne na błędy). Z drugiej strony używanie dużych plików Excela naprawdę nie jest podstawowym zastosowaniem Excela, więc kompromis za większą przenośnością jest niewielki. Dodatkowo użycie pliku innego niż makro zwiększa do pewnego stopnia bezpieczeństwo. Dla porównania, po co zawracać sobie głowę Javą, skoro Assembler jest lepszy?
Ister
9

Można by pomyśleć, że xlsb ma tylko przewagę nad xlsm. Fakt, że xlsm jest oparty na XML, a xlsb jest binarny, oznacza, że ​​gdy wystąpi uszkodzenie skoroszytu, masz większe szanse na naprawienie xlsm niż xlsb.

Felipe Costa Gualberto
źródło
1
Jeśli to prawda, to xlsm jest dla mnie. Przeklinano mnie z powodu uszkodzonych plików Excela od połowy późnych lat 90-tych. To prawie wystarczyło, abym zarabiał na życie z kopania rowów. Office 2000 był pierwszą wersją z funkcją odzyskiwania plików. Ale ja nie
riderBill
Rozszerzenia plików XLSX i XLSM są znacznie, znacznie bardziej stabilne niż rozszerzenie pliku Excel XLS sprzed 2007 roku.
Felipe Costa Gualberto
8

Tylko dla potomnych, oto tekst z kilku zewnętrznych źródeł dotyczący formatów plików Excel. Niektóre z nich zostały wymienione w innych odpowiedziach na to pytanie, ale bez powielania zasadniczej treści.

1. Od Douga Mahugha, 22 sierpnia 2006 :

... nowy format binarny XLSB. Podobnie jak Open XML, jest to format pliku o pełnej wierności, w którym można przechowywać wszystko, co można utworzyć w programie Excel, ale format XLSB jest zoptymalizowany pod kątem wydajności w sposób, który nie jest możliwy w przypadku czystego formatu XML.

Format XLSB (czasami określany również jako BIFF12, jak w „formacie pliku binarnego dla pakietu Office 12”) wykorzystuje tę samą konwencję otwartego pakowania, której używają formaty Open XML i XPS. Jest to więc w zasadzie kontener ZIP i możesz go otworzyć za pomocą dowolnego narzędzia ZIP, aby zobaczyć, co jest w środku. Ale zamiast części .XML w pakiecie, znajdziesz części .BIN ...

Ten artykuł odnosi się również do dokumentacji dotyczącej formatu BIN , zbyt długiej, aby ją tu odtworzyć.

2. Z archiwum MSDN z 29 sierpnia 2006 r., Które z kolei cytuje już brakujący wpis na blogu dotyczący formatu XLSB:

Mimo że wykonaliśmy wiele pracy, aby upewnić się, że nasze formaty XML otwierają się szybko i wydajnie, ten format binarny jest nadal bardziej wydajny w programie Excel do otwierania i zapisywania i może prowadzić do pewnych ulepszeń wydajności skoroszytów zawierających wiele danych lub wymagałoby to dużej ilości przetwarzania XML podczas procesu otwierania. (W rzeczywistości odkryliśmy, że nowy format binarny jest w wielu przypadkach szybszy niż stary format XLS). Ponadto nie ma wersji tego formatu pliku wolnej od makr - wszystkie pliki XLSB mogą zawierać makra (VBA i XLM) . Pod wszystkimi innymi względami jest funkcjonalnym odpowiednikiem powyższego formatu pliku XML:

Rozmiar pliku - rozmiar pliku w obu formatach jest w przybliżeniu taki sam, ponieważ oba formaty są zapisywane na dysku przy użyciu architektury kompresji zip - oba formaty używają tej samej struktury pakowania i oba mają tę samą strukturę na poziomie części. Obsługa funkcji - oba formaty obsługują dokładnie ten sam zestaw funkcji Wydajność w czasie wykonywania - po załadowaniu do pamięci format pliku nie ma wpływu na szybkość aplikacji / obliczeń Konwertery - oba formaty będą miały identyczną obsługę konwertera

UuDdLrLrSs
źródło
5

Format XLSB jest również dedykowany dla makr osadzonych w ukrytym pliku skoroszytu znajdującym się w folderze startowym programu Excel (XLSTART).

Szybki i brudny test z xlsm lub xlsb w folderze XLSTART:

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

0,89s z xlsb (binarne) kontra 1,3s z tą samą zawartością w formacie xlsm (xml w pliku zip) ... :)

Alexis-Emmanuel Haeringer
źródło