ทำความเข้าใจเกี่ยวกับ excel xls รูปแบบไฟล์ ไบนารี




ทำความเข้าใจเกี่ยวกับ Excel. xls รูปแบบไฟล์ไบนารี สรุป: เรียนรู้เกี่ยวกับรูปแบบไฟล์ไบนารี MS-XLS ที่ใช้ในการออกมาก่อนหน้าผลิตภัณฑ์ของ Microsoft Excel รวมอยู่ในบทความนี้เป็นโครงสร้างพื้นฐานและแนวคิดที่สำคัญสำหรับการโต้ตอบกับรูปแบบแฟ้มนี้โปรแกรม วิธีที่แนะนำในการดำเนินการมากที่สุดงานเขียนโปรแกรมใน Microsoft Excel คือการใช้ Excel ประถมประกอบ Interop เหล่านี้เป็นชุดของการเรียนที่ให้รูปแบบวัตถุที่สมบูรณ์แบบสำหรับการทำงานร่วมกับโปรแกรม Microsoft Excel บทความชุดนี้จะเกี่ยวข้องเฉพาะกับสถานการณ์ขั้นสูงเช่น Microsoft Excel ที่ไม่ได้ติดตั้ง ส่วนประกอบที่สำคัญของรูปแบบ MS-XLS ไฟล์ คำอธิบายในบันทึก [MS-XLS]: Excel รูปแบบไฟล์ไบนารี (.xls) สเปกโครงสร้างไม่รวมถึงการกล่าวถึงประเภทบันทึก (RT) และจำนวนไบต์ (CB) ค่าที่ทำขึ้นสี่ไบต์แรกของการบันทึก . สำหรับข้อมูลเพิ่มเติมโปรดดูที่ส่วน 2.1.4 ของข้อกำหนด MS-XLS เหล่านี้เป็นกระแสหลัก substreams และมีการบันทึกในรูปแบบไฟล์ MS-XLS สถานไบต์เฉพาะในบันทึกมีการนับจากปลายของสนาม cb ที่ กระแสสมุดงานเป็นกระแสหลักในแฟ้ม. xls มันมีหลาย substreams แต่ละที่เริ่มต้นด้วยจุดเริ่มต้นของไฟล์ (BOF) บันทึกและจบลงด้วยการสิ้นสุดของไฟล์ (EOF) บันทึก กระแสแรกคือเสมอ Globals substream และส่วนที่เหลือเป็นแผ่น substreams เหล่านี้รวมถึงแผ่นแผ่นแมโครแผ่นงานแผนภูมิแผ่นโต้ตอบ VBA แผ่นโมดูล substream Globals ระบุคุณสมบัติทั่วโลกและข้อมูลในสมุดงาน นอกจากนี้ยังมีการบันทึก BoundSheet8 สำหรับแต่ละ substream ในกระแสสมุดงาน บันทึก BoundSheet8 ให้ข้อมูลเกี่ยวกับแผ่น substream ซึ่งรวมถึงชื่อ, สถานที่, ชนิดและการมองเห็น ครั้งแรก 4 ไบต์ของการบันทึกที่ lbPlyPos FilePointer ระบุตำแหน่งในกระแสสมุดที่ substream แผ่นเริ่มต้น substream แผ่นระบุแผ่นในสมุดงาน ตารางมือถือเป็นส่วนหนึ่งของกระแสแผ่นที่เซลล์จะถูกเก็บไว้ มันมีชุดของบล็อกแถวแต่ละที่มีความจุ 32 แถวของเซลล์และจะเต็มไปตามลำดับ บล็อกแถวแต่ละคนเริ่มด้วยชุดของระเบียนแถวตามด้วยเซลล์ที่จะไปในแถวและจบลงด้วยการบันทึก DBCell ซึ่งจะช่วยให้การเริ่มต้น offset ของเซลล์แรกของแถวในแต่ละบล็อก บันทึกแถวกำหนดแถวในแผ่น นี้เป็นโครงสร้างที่ซับซ้อน แต่เพียงครั้งแรก 6 ไบต์ที่มีความจำเป็นสำหรับการดึงเนื้อหาพื้นฐาน เหล่านี้ให้ดัชนีแถวและคอลัมน์ของเซลล์แรกและเซลล์สุดท้ายที่มีข้อมูลหรือการจัดรูปแบบที่ไม่ซ้ำกันในแถว ทุกเซลล์ในบล็อกแถวจะถูกเก็บไว้หลังจากที่แถวสุดท้ายในบล็อก มีเจ็ดชนิดของระเบียนที่เป็นตัวแทนของเซลล์ที่เกิดขึ้นจริงในแผ่นอยู่ ส่วนใหญ่บันทึกเซลล์เริ่มต้นด้วยโครงสร้างของเซลล์ 6 ไบต์ ครั้งแรก 2 ไบต์ผู้ระบุแถวอีก 2 ไบต์ระบุคอลัมน์และ 2 ไบต์ที่ผ่านมาระบุบันทึก XF ใน substream Globals ที่มีข้อมูลการจัดรูปแบบ บันทึกต่อไปนี้เป็นตัวแทนของชนิดที่แตกต่างกันของเซลล์ เว้นแต่ระบุไว้เป็นครั้งแรก 6 ไบต์ที่นำขึ้นมาจากโครงสร้างของเซลล์และไบต์ที่เหลือมีค่า บันทึกเซลล์ว่าง บันทึกเซลล์ที่ว่างเปล่าระบุเซลล์ว่างที่ไม่มีสูตรหรือค่า บันทึกประเภทนี้จะใช้เฉพาะสำหรับเซลล์ที่มีการจัดรูปแบบของแต่ละบุคคล ฉะนั้นเซลล์ว่างจะถูกเก็บไว้ในบันทึก MulBlank หรือไม่ทั้งหมด RK บันทึกเซลล์ บันทึกเซลล์ RK มีจำนวน 32 บิต Excel จะแปลงตัวเลขที่สามารถแสดงใน 32 บิตหรือน้อยกว่าในการรูปแบบนี้สำหรับการจัดเก็บเป็นวิธีการลดขนาดไฟล์ แทนของโครงสร้างเซลล์ 6 ไบต์ครั้งแรก 2 ไบต์ระบุแถวที่สอง 2 ไบต์ระบุคอลัมน์ ส่วนที่เหลืออีก 6 ไบต์กำหนดจำนวนในโครงสร้าง RkRec ดิสก์และการเพิ่มประสิทธิภาพหน่วยความจำ BoolErr บันทึกเซลล์ บันทึกเซลล์ BoolErr มี 2 ไบต์โครงสร้าง Bes ที่อาจเป็นได้ทั้งค่าบูลีนหรือรหัสข้อผิดพลาด บันทึกหมายเลขโทรศัพท์มือถือ บันทึกเซลล์มีจำนวน 64 บิตเลขทศนิยม บันทึกเซลล์ LabelSst ประกอบด้วยจำนวนเต็ม 4 ไบต์สตริงที่ระบุในเงื่อนไขที่ใช้ร่วมกันตาราง (SST) โดยเฉพาะจำนวนเต็มสอดคล้องกับดัชนีอาเรย์ในฟิลด์ RGB ของ SST สูตรบันทึกเซลล์ บันทึกเซลล์สูตรมีทั้งสูตรและข้อมูลที่เกิดขึ้น ค่าที่แสดงในเซลล์ที่มีการกำหนดไว้ในโครงสร้าง FormulaValue ใน 8 ไบต​​์ที่เป็นไปตามโครงสร้างของเซลล์ อีก 6 ไบต์สามารถปฏิเสธและส่วนที่เหลือของการบันทึกเป็นโครงสร้าง CellParsedFormula ที่มีสูตรของตัวเอง บันทึก MulBlank ระบุชุดของเซลล์ว่างในแถว ครั้งแรก 2 ไบต์ให้แถวและอีก 2 ไบต์ให้คอลัมน์ที่ชุดของช่องว่างเริ่มต้นที่ ถัดไปเป็นแถวย​​าวตัวแปรของโครงสร้างเซลล์ดังต่อไปนี้เพื่อเก็บข้อมูลการจัดรูปแบบและช่วง 2 ไบต์แสดงสิ่งที่คอลัมน์ชุดของช่องว่างสิ้นสุดใน บันทึก MulRk เป็นเหมือนบันทึก MulBlank แต่แทนที่จะเซลล์ว่างบันทึก MulRk ประกอบด้วยข้อมูล RK ในโครงสร้าง RkRec สตริงที่ใช้ร่วมกันตาราง (SST) มีทั้งหมดของค่าสตริงในสมุดงาน ค่าเหล่านี้มีการอ้างอิงในแผ่นบันทึกโดย LabelSst มือถือ ครั้งแรก 8 ไบต​​์ของ SST ให้จำนวนของการอ้างอิงไปยังสายในสมุดงานและจำนวนค่าสตริงที่ไม่ซ้ำกันใน SST ส่วนที่เหลือเป็นอาร์เรย์ของโครงสร้าง XLUnicodeRichExtendedString ที่มีสตริงตัวเองเป็นอาร์เรย์ของตัวอักษร 16 บิตของโครงสร้างนี้ระบุว่าตัวละครที่มี 1 หรือ 2 ไบต์ไบต์ในแต่ละ คุณสามารถขยายทั้งโครงสร้าง SST และโครงสร้าง XLUnicodeRichExtendedString ดำเนินการต่อโดยใช้บันทึกถ้าจำนวนหรือความยาวของสายเกินขอบเขตของพวกเขา สกัดข้อมูลจากไฟล์ Excel ทั้งหมด MS-XLS อาศัยรูปแบบเนื้อหาของไฟล์ในแผ่น substreams แม้ว่าคุณจะสามารถโหลด substream แผ่นทุกกราดคุณจะได้รับการควบคุมมากขึ้นและมีประสิทธิภาพโดยใช้บันทึก BoundSheet8 เพื่อหาเพียงแผ่นที่คุณต้องการที่จะอ่าน แยกของสูตรและข้อมูลการจัดรูปแบบอยู่นอกเหนือขอบเขตของบทความนี้