Khi nào nên sử dụng định dạng xlsm hoặc xlsb?


106

Kể từ Excel 2007, Microsoft đã chia cổ điển .xlsđịnh dạng một số định dạng (đặc biệt là .xlsx, .xlsm, .xlsb). Tôi không có vấn đề gì khi hiểu việc sử dụng và mục đích của .xlsxđịnh dạng nhưng tôi vẫn đang phân vân liệu chúng ta nên sử dụng một .xlsmhay một .xlsbđịnh dạng khi tạo một tệp có chứa một số VBA.

Tất nhiên, bạn có thể tìm thấy một số chủ đề trên web, chẳng hạn như:

Những gì tôi đã hiểu từ liên kết cuối cùng này .xlsmlà một số loại định dạng XML và do đó, cần thiết cho tab ribbon tùy chỉnh.

Ngoài sự khác biệt về khái niệm giữa định dạng ( .xlsmdựa trên XML VS .xlsblà một tệp nhị phân ), có bất kỳ sự khác biệt thực tế nào khi sử dụng bất kỳ tệp nào trong số này (ngoài tùy chỉnh ruy-băng) không?
Bạn đã bao giờ thấy sự khác biệt thực sự nào khi sử dụng bất kỳ định dạng nào chưa?


3
xlsb thường nhỏ hơn xlsm
Charles Williams

Một số thông tin hữu ích ở đây - analystcave.com/…
Chris

1
Đối với một số lý do, sử dụng .xlsb qua .xlsm giải quyết một số vấn đề chúng tôi đã có với một User Defined Function tạo phantom các đối tượng trong mô hình đối tượng: superuser.com/questions/1005482/...
SuMau

Câu trả lời:


62

Tất cả chúng đều giống nhau ở chỗ về cơ bản chúng là tệp nén chứa các thành phần tệp thực tế. Bạn có thể xem nội dung bằng cách thay thế phần mở rộng bằng .zip và mở chúng lên. Sự khác biệt với xlsb dường như là các thành phần không dựa trên XML mà ở định dạng nhị phân: điều này được cho là có lợi khi làm việc với các tệp lớn.

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


Các tệp .xls có định dạng nhị phân. Các tệp .xlsb giữ lại định dạng nhị phân này cho các phiên bản office mới hơn. Có cả sự khác biệt về kích thước và lợi ích về tốc độ khi lưu trữ dữ liệu ở định dạng nhị phân, mặc dù những cải tiến sẽ chỉ được ghi nhận trong các tệp RẤT lớn.
music2myear

90

.xlsxtải lâu hơn 4 lần .xlsbvà lưu lâu hơn 2 lần và có tệp lớn hơn 1,5 lần. Tôi đã thử nghiệm điều này trên một trang tính được tạo với 10'000 hàng * 1'000 cột = 10'000'000 (10 ^ 7) ô của các =…+1công thức chuỗi đơn giản :

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

(Phần cứng: Core2Duo 2.3 GHz, RAM 4 GB, SATA II HD 5.400 vòng / phút; Windows 7, chịu tải nặng từ các quy trình khác.)

Bên cạnh điều này, không nên có sự khác biệt. Chính xác hơn,

cả hai định dạng đều hỗ trợ chính xác cùng một bộ tính năng

trích dẫn bài đăng trên blog này từ 2006-08-29. Vì vậy, có thể thông tin .xlsbkhông hỗ trợ mã Ribbon mới hơn so với trích dẫn trên, nhưng tôi cho rằng nguồn diễn đàn của bạn là sai. Khi bẻ khóa mở tệp nhị phân, nó dường như bắt chước đặc biệt cấu trúc tệp OOXML 1-to-1: Bài viết trên blog từ 2006-08-07


2
chỉ có một thử nghiệm, không có kết quả phục vụ (1) mặc dù: - \
Người tốt

2
Tôi xác nhận rằng một trong các tệp của tôi có dải băng tùy chỉnh hoạt động tốt trong xlsb.
David G

5
@PatrickLepelletier .xlsxgiống như .xlsm, chỉ khi macro bị tắt. Cả hai đều dựa trên XML. Ngược lại với điều đó, .xlsblà nhị phân. Vì vậy, bạn nên đọc câu hỏi là "{.xlsx / .xlsm} so với .xlsb". (Không có phiên bản nhị phân bị tắt macro nào .xlsb.)
Aaron Thoma

4
Nếu xlsb tốt hơn, tại sao xlsx lại là mặc định? Phải có một số bất lợi cho xlsb?
PProteus

3
@PProteus, chỉ cần đặt xlsb là tốt hơn trong một khu vực cụ thể. Toàn bộ ý tưởng của việc giới thiệu tiêu chuẩn XML là minh bạch hơn, làm cho các tệp dễ di động hơn và thao tác với tệp dễ dàng hơn. Giờ đây, các công cụ của bên thứ ba có thể đọc / ghi các tệp Excel một cách chính xác (tôi biết, họ có thể làm điều đó với một số kỹ thuật đảo ngược nhưng điều đó dễ xảy ra lỗi). Mặt khác, việc sử dụng các tệp Excel lớn thực sự không phải là cách sử dụng Excel chính vì vậy sự đánh đổi để có tính di động cao hơn là rất ít. Ngoài ra, việc sử dụng tệp không phải macro sẽ tăng tính bảo mật ở một mức độ nào đó. Để so sánh, tại sao phải bận tâm với Java nếu Assembler tốt hơn?
Ister

9

Người ta có thể nghĩ rằng xlsb chỉ có lợi thế hơn xlsm. Thực tế là xlsm dựa trên XML và xlsb là nhị phân là khi xảy ra lỗi sổ làm việc, bạn có cơ hội tốt hơn để sửa chữa xlsm so với xlsb.


1
Nếu đó là sự thật thì xlsm là một trong những cho tôi. Tôi đã bị nguyền rủa với các tệp Excel bị hỏng kể từ giữa cuối những năm 90. Nó gần như đủ để khiến tôi phải đào mương kiếm sống. Office 2000 là phiên bản đầu tiên có tính năng khôi phục tệp. But I don
riderBill

Phần mở rộng tệp XLSX và XLSM ổn định hơn nhiều so với phần mở rộng tệp Excel XLS trước năm 2007.
Felipe Costa Gualberto

8

Chỉ dành cho hậu thế, đây là văn bản từ một số nguồn bên ngoài liên quan đến các định dạng tệp Excel. Một số trong số này đã được đề cập trong các câu trả lời khác cho câu hỏi này nhưng không tái tạo nội dung cơ bản.

1. Từ Doug Mahugh, ngày 22 tháng 8 năm 2006 :

... định dạng nhị phân XLSB mới. Giống như Open XML, đó là một định dạng tệp trung thực hoàn toàn có thể lưu trữ bất kỳ thứ gì bạn có thể tạo trong Excel, nhưng định dạng XLSB được tối ưu hóa cho hiệu suất theo những cách không thể thực hiện được với định dạng XML thuần túy.

Định dạng XLSB (đôi khi còn được gọi là BIFF12, như trong “định dạng tệp nhị phân cho Office 12”) sử dụng cùng một Quy ước đóng gói mở được sử dụng bởi các định dạng Open XML và XPS. Vì vậy, về cơ bản nó là một vùng chứa ZIP và bạn có thể mở nó bằng bất kỳ công cụ ZIP nào để xem những gì bên trong. Nhưng thay vì các phần .XML trong gói, bạn sẽ tìm thấy các phần .BIN ...

Bài viết này cũng đề cập đến tài liệu về định dạng BIN , quá dài để tái tạo ở đây.

2. Từ MSDN Archive, ngày 29 tháng 8 năm 2006 , đến lượt nó trích dẫn một bài đăng trên blog đã bị thiếu về định dạng XLSB:

Mặc dù chúng tôi đã làm rất nhiều việc để đảm bảo rằng các định dạng XML của chúng tôi mở nhanh và hiệu quả, nhưng định dạng nhị phân này vẫn hiệu quả hơn để Excel mở và lưu, đồng thời có thể dẫn đến một số cải tiến về hiệu suất cho các sổ làm việc chứa nhiều hoặc dữ liệu đó sẽ yêu cầu nhiều phân tích cú pháp XML trong quá trình Mở. (Trên thực tế, chúng tôi nhận thấy rằng định dạng nhị phân mới nhanh hơn định dạng XLS cũ trong nhiều trường hợp.) Ngoài ra, không có phiên bản không có macro của định dạng tệp này - tất cả các tệp XLSB đều có thể chứa macro (VBA và XLM) . Trong tất cả các khía cạnh khác, nó tương đương về mặt chức năng với định dạng tệp XML ở trên:

Kích thước tệp - kích thước tệp của cả hai định dạng gần như giống nhau, vì cả hai định dạng đều được lưu vào đĩa bằng Kiến trúc nén zip - cả hai định dạng đều sử dụng cấu trúc đóng gói giống nhau và cả hai đều có cấu trúc cấp phần giống nhau. Hỗ trợ tính năng - cả hai định dạng đều hỗ trợ chính xác cùng một bộ tính năng Hiệu suất thời gian chạy - sau khi được tải vào bộ nhớ, định dạng tệp không ảnh hưởng đến tốc độ ứng dụng / tính toán Bộ chuyển đổi - cả hai định dạng sẽ có hỗ trợ trình chuyển đổi giống hệt nhau


5

Định dạng XLSB cũng dành riêng cho các macro được nhúng trong tệp sổ làm việc ẩn nằm trong thư mục khởi động excel (XLSTART).

Một bài kiểm tra nhanh và bẩn với xlsm hoặc xlsb trong thư mục XLSTART:

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

0,89 giây với xlsb (nhị phân) so với 1,3 giây có cùng nội dung ở định dạng xlsm (xml trong tệp zip) ... :)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.