Ponieważ Excel 2007, Microsoft podzielić klasyczny .xls
format na kilku formatach (w szczególności .xlsx
, .xlsm
, .xlsb
). Nie mam problemu ze zrozumieniem użycia i celu .xlsx
formatu, ale nadal zastanawiam się, czy powinniśmy użyć formatu a .xlsm
lub .xlsb
format podczas tworzenia pliku zawierającego VBA.
Oczywiście w sieci można znaleźć kilka tematów, na przykład:
- na forum odpowiedzi firmy Microsoft
- na Microsoft bloga , który został skierowany w poprzednim linku (jeszcze mam analizowany aż do 10 th strony bez znalezienia wg
.xlsb
) - ten temat z innego forum
Z tego ostatniego łącza zrozumiałem, że .xlsm
jest to jakiś format XML, a zatem potrzebny do niestandardowej karty wstążki.
Czy poza koncepcyjną różnicą między formatem ( .xlsm
jest oparty na XML, VS .xlsb
to 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?
źródło
Odpowiedzi:
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/
źródło
.xlsx
ładuje 4 razy dłużej niż.xlsb
i 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=…+1
formuł łańcuchowych :(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,
cytuje ten wpis na blogu z 29.08.2006. Więc może informacja,
.xlsb
któ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źródło
.xlsx
jest jak.xlsm
, tylko z wyłączonymi makrami. Oba są oparte na XML. W przeciwieństwie do tego.xlsb
jest binarny. Dlatego powinieneś czytać pytanie jako „{.xlsx / .xlsm} kontra .xlsb”. (Nie ma wersji pliku binarnego z wyłączoną obsługą makr.xlsb
.)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.
źródło
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 :
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:
źródło
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:
0,89s z xlsb (binarne) kontra 1,3s z tą samą zawartością w formacie xlsm (xml w pliku zip) ... :)
źródło