เมื่อใดควรใช้รูปแบบ xlsm หรือ xlsb


106

ตั้งแต่ Excel 2007, Microsoft ได้แบ่งคลาสสิก.xlsรูปแบบหลายรูปแบบ (โดยเฉพาะอย่างยิ่ง.xlsx, .xlsm, .xlsb) ฉันไม่มีปัญหาในการทำความเข้าใจการใช้งานและวัตถุประสงค์ของ.xlsxรูปแบบ แต่ฉันยังสงสัยว่าเราควรใช้ a .xlsmหรือ.xlsbรูปแบบเมื่อสร้างไฟล์ที่มี VBA

แน่นอนคุณสามารถค้นหาบางหัวข้อบนเว็บเช่น:

สิ่งที่ฉันเข้าใจจากลิงก์สุดท้ายนี้.xlsmคือรูปแบบ XML บางประเภทดังนั้นจึงจำเป็นสำหรับแท็บ Ribbon ที่กำหนดเอง

นอกเหนือจากความแตกต่างทางแนวคิดระหว่างรูปแบบ ( .xlsmอิงตามXML VS .xlsbเป็นไฟล์ไบนารี ) มีความแตกต่างในทางปฏิบัติเมื่อใช้ไฟล์ใด ๆ (นอกเหนือจากการปรับแต่ง Ribbon) หรือไม่
คุณเคยเห็นความแตกต่างที่แท้จริงเมื่อใช้รูปแบบเหล่านี้หรือไม่?


3
xlsb มักจะเล็กกว่า xlsm
Charles Williams

ข้อมูลที่เป็นประโยชน์ที่นี่ - analystcave.com/…
คริส

1
ด้วยเหตุผลบางประการการใช้. xlsb ทับ. xlsm ช่วยแก้ปัญหาบางอย่างที่เราพบกับฟังก์ชันที่กำหนดโดยผู้ใช้ที่สร้างวัตถุผีในโมเดลวัตถุ: superuser.com/questions/1005482/…
SuMau

คำตอบ:


62

พวกเขาทั้งหมดคล้ายกันตรงที่เป็นไฟล์ zip ที่มีส่วนประกอบของไฟล์จริง คุณสามารถดูเนื้อหาได้เพียงแค่เปลี่ยนนามสกุลเป็น. zip แล้วเปิดขึ้นมา ความแตกต่างกับ xlsb ดูเหมือนว่าคอมโพเนนต์ไม่ได้ใช้ XML แต่อยู่ในรูปแบบไบนารีซึ่งคาดว่าจะเป็นประโยชน์เมื่อทำงานกับไฟล์ขนาดใหญ่

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


ไฟล์. xls เป็นรูปแบบไบนารี ไฟล์. xlsb ยังคงรักษารูปแบบไบนารีนี้ไว้สำหรับ Office เวอร์ชันที่ใหม่กว่า มีทั้งความแตกต่างของขนาดและประโยชน์ด้านความเร็วในการจัดเก็บข้อมูลในรูปแบบไบนารีแม้ว่าการปรับปรุงจะบันทึกไว้ในไฟล์ขนาดใหญ่มากเท่านั้น
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 GHz, 4 GB RAM, 5.400 รอบต่อนาที SATA II HD; Windows 7 มีภาระค่อนข้างหนักจากกระบวนการอื่น ๆ )

ข้างนี้ไม่ควรมีความแตกต่าง อย่างแม่นยำมากขึ้น,

ทั้งสองรูปแบบรองรับชุดคุณลักษณะเดียวกันทุกประการ

อ้างอิงบล็อกโพสต์นี้ตั้งแต่ปี 2549-08-29 ดังนั้นข้อมูลที่.xlsbไม่รองรับรหัส Ribbon อาจจะใหม่กว่าข้อมูลอ้างอิงด้านบน แต่ฉันคิดว่าแหล่งที่มาของฟอรัมของคุณผิด เมื่อแตกเปิดแฟ้มไบนารีดูเหมือนว่าจะเลียนแบบโครงสร้างของไฟล์ OOXML 1 ต่อ 1 condensedly: บล็อกบทความจาก 2006/08/07


2
การทดลองเพียงครั้งเดียวไม่มีผล (1) แม้ว่า: - \
คนดี

2
ฉันยืนยันว่าหนึ่งในไฟล์ของฉันด้วย Ribbon ที่กำหนดเองทำงานได้ดีใน xlsb
David G

6
@PatrickLepelletier .xlsxเป็นเหมือน.xlsmโดยปิดการใช้งานมาโครเท่านั้น ทั้งสองใช้ XML ตรงกันข้ามกับที่.xlsbเป็นไบนารี ดังนั้นคุณควรอ่านคำถามว่า "{.xlsx / .xlsm} เทียบกับ. xlsb" (ไม่มีไบนารีเวอร์ชันปิดการใช้งานมาโคร.xlsb)
Aaron Thoma

4
ถ้า xlsb ดีกว่าเหตุใด xlsx จึงเป็นค่าเริ่มต้น xlsb ต้องมีข้อเสียบ้างไหม?
PProteus

3
@PProteus เพียงใส่ xlsb จะดีกว่าในพื้นที่เฉพาะ แนวคิดทั้งหมดในการแนะนำมาตรฐาน XML คือต้องมีความโปร่งใสมากขึ้นทำให้ไฟล์พกพาได้ง่ายขึ้นและจัดการไฟล์ได้ง่ายขึ้น ตอนนี้เครื่องมือของบุคคลที่สามสามารถอ่าน / เขียนไฟล์ Excel ได้อย่างถูกต้อง (ฉันรู้ว่าพวกเขาสามารถทำได้ด้วยวิศวกรรมย้อนกลับบางอย่าง แต่ก็เกิดข้อผิดพลาดได้ง่าย) ในทางกลับกันการใช้ไฟล์ Excel ขนาดใหญ่ไม่ใช่การใช้งาน Excel เป็นหลักดังนั้นการลดทอนความเป็นแบบพกพาจึงมีน้อย นอกจากนี้การใช้ไฟล์ที่ไม่ใช่มาโครจะเพิ่มความปลอดภัยในระดับหนึ่ง ในการเปรียบเทียบทำไมต้องกังวลกับ Java ถ้า Assembler ดีกว่า?
Ister

9

อาจคิดว่า xlsb มีข้อดีกว่า xlsm เท่านั้น ความจริงที่ว่า xlsm เป็นแบบ XML และ xlsb เป็นไบนารีก็คือเมื่อเกิดความเสียหายในสมุดงานคุณมีโอกาสซ่อมแซม xlsm ได้ดีกว่า xlsb


1
ถ้าเป็นจริง xlsm คืออันที่เหมาะกับฉัน ฉันถูกสาปแช่งด้วยไฟล์ Excel ที่เสียหายตั้งแต่กลาง - ปลายยุค 90 มันเกือบจะเพียงพอที่จะทำให้ฉันต้องใช้เวลาขุดคูเพื่อหาเลี้ยงชีพ Office 2000 เป็นเวอร์ชันแรกที่มีคุณลักษณะการกู้คืนไฟล์ แต่ฉันไม่
riderBill

นามสกุลไฟล์ XLSX และ XLSM มีความเสถียรมากกว่านามสกุลไฟล์ Excel XLS รุ่นก่อนปี 2007 มาก
Felipe Costa Gualberto

8

สำหรับคนรุ่นหลังนี่คือข้อความจากแหล่งภายนอกหลายแห่งเกี่ยวกับรูปแบบไฟล์ Excel มีการกล่าวถึงบางส่วนในคำตอบอื่น ๆ ของคำถามนี้ แต่ไม่มีการทำซ้ำเนื้อหาที่สำคัญ

1. จากDoug Mahugh 22 สิงหาคม 2549 :

... รูปแบบไบนารี XLSB ใหม่ เช่นเดียวกับ Open XML เป็นรูปแบบไฟล์ความเที่ยงตรงเต็มรูปแบบที่สามารถจัดเก็บทุกสิ่งที่คุณสามารถสร้างใน Excel ได้ แต่รูปแบบ XLSB ได้รับการปรับให้เหมาะสมเพื่อประสิทธิภาพในรูปแบบที่ไม่สามารถทำได้ด้วยรูปแบบ XML ที่แท้จริง

รูปแบบ XLSB (บางครั้งเรียกว่า BIFF12 เช่นเดียวกับใน“ รูปแบบไฟล์ไบนารีสำหรับ Office 12”) ใช้ Open Packaging Convention เดียวกับที่ใช้โดยรูปแบบ Open XML และ XPS โดยพื้นฐานแล้วมันจะเป็นที่เก็บ ZIP และคุณสามารถเปิดมันด้วยเครื่องมือ ZIP เพื่อดูว่ามีอะไรอยู่ข้างใน แต่แทนที่จะเป็นส่วน. XML ภายในแพ็คเกจคุณจะพบชิ้นส่วน. BIN ...

บทความนี้ยังอ้างถึงเอกสารเกี่ยวกับรูปแบบ BINซึ่งยาวเกินไปที่จะทำซ้ำที่นี่

2. จากMSDN Archive วันที่ 29 สิงหาคม 2549ซึ่งอ้างถึงบล็อกโพสต์ที่หายไปแล้วเกี่ยวกับรูปแบบ 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) ... :)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.