فهم تنسيق ملف ثنائي إكسل xls


فهم تنسيق ملف ثنائي إكسل. XLS ملخص: تعرف على شكل ملف ثنائي MS-XLS التي يتم استخدامها في إصدارها مسبقا منتجات مايكروسوفت إكسل. تضمينها في هذه المقالة هي الهياكل الأساسية والمفاهيم الأساسية للتفاعل مع هذا شكل ملف برمجيا. الطريقة الموصى بها لأداء معظم المهام البرمجة في Microsoft Excel هو استخدام جمعيات إكسل الابتدائية إمكانية التشغيل المتداخل. هذه هي مجموعة من الطبقات. NET التي توفر طراز كائن كامل للعمل مع Microsoft Excel. يتناول هذا المقال فقط مع سلسلة سيناريوهات متقدمة، مثل حيث لم يتم تثبيت مايكروسوفت إكسل. المكونات الرئيسية لتنسيق ملف MS-XLS أوصاف سجل في [MS-XLS]: اكسل تنسيق ملف ثنائي (. XLS) هيكل مواصفات لا تتضمن إشارة إلى نوع السجل (RT) وعدد وحدات البايت (CB) القيم التي تشكل البايتات الأربعة الأولى من المحضر . لمزيد من المعلومات، راجع المقطع 2.1.4 من مواصفات MS-XLS. هذه هي تيارات رئيسية، substreams، والسجلات في شكل ملف MS-XLS. تحسب مواقع بايت محددة ضمن سجل من نهاية مجال بناء القدرات. تيار مصنف هو تيار الرئيسي في ملف. xls. أنه يحتوي على substreams متعددة، كل منها يبدأ مع بداية ملف (BOF) سجل وينتهي مع نهاية الملف (EOF) سجل. تيار الأول هو دائما substream جلوبل، والباقي substreams ورقة. وتشمل هذه أوراق عمل، أوراق وحدات الماكرو، ورقة الرسم البياني، أوراق الحوار وأوراق نمطية VBA. يحدد substream جلوبل الخصائص والبيانات العالمية في مصنف. كما يتضمن سجل BoundSheet8 لكل substream في تيار مصنف. سجل BoundSheet8 يعطي معلومات عن substream ورقة. ويشمل هذا الاسم والموقع ونوع، ووضوح الرؤية. 4 بايت الأولى من المحضر، وlbPlyPos FilePointer، تحدد الموقف في مجرى المصنف حيث يبدأ substream ورقة. يحدد substream ورقة عمل ورقة في المصنف. الجدول الخلية هو جزء من تيار الورقة حيث يتم تخزين الخلايا. أنه يحتوي على سلسلة من كتل التوالي، كل منها لديه القدرة من 32 صفوف من الخلايا، وتمتلئ بالتتابع. كل كتلة الصف يبدأ سلسلة من سجلات الصف، تليها الخلايا التي تذهب في الصفوف، وينتهي مع سجل DBCell، الذي يعطي انطلاق إزاحة الخلية الأولى من كل صف في الكتلة. يعرف سجل صف صف في ورقة. هذا هو بنية معقدة، ولكن هناك حاجة فقط بايت 6 الأولى لاسترجاع المحتوى الأساسي. وهذه تعطي مؤشر الصفوف والأعمدة من الخلايا الأولى والخلايا الماضية التي تحتوي على بيانات أو تنسيق فريد من نوعه في الصف. يتم تخزين كافة الخلايا في كتلة التوالي بعد الصف الأخير في الكتلة. هناك سبعة أنواع من السجلات التي تمثل الخلايا الفعلية في ورقة عمل. تبدأ معظم السجلات الخلية مع خلية بنية 6 بايت. أول 2 من تلك بايت تحديد الصف، 2 بايت المقبلة تحدد العمود، و2 بايت الماضية تحدد سجل XF في substream جلوبل يحتوي على معلومات التنسيق. السجلات التالية تمثل أنواع مختلفة من الخلايا. ما لم ينص على خلاف ذلك، يتم أخذ 6 بايت الأولى من قبل بنية الخلية، وبايت المتبقية تحتوي على قيمة. سجل خلية فارغة يحدد سجل خلية فارغة خلية فارغة ليس لها صيغة أو قيمة. يستخدم هذا النوع سجل فقط عن الخلايا التي تحتوي على التنسيق الفردي؛ خلاف ذلك، يتم تخزين الخلايا الفارغة في سجلات MulBlank أو لا على الاطلاق. سجل خلية RK ويتضمن سجل خلية RK رقم 32 بت. Excel تلقائيا بتحويل الأرقام التي يمكن أن تكون ممثلة في 32 بت أو أقل لهذا الشكل لتخزين كوسيلة لتقليل حجم الملف. بدلا من هيكل الخلية 6 بايت، 2 بايت الأولى تحدد الصف و2 بايت ثانية يحدد العمود. 6 بايت المتبقية تحدد عدد في بنية RkRec القرص وتحسين الذاكرة. سجل خلية BoolErr ويتضمن سجل خلية BoolErr لبس هيكل 2 بايت التي قد تكون إما قيمة منطقية أو رمز خطأ. رقم قياسي خلية ويتضمن سجل خلية عدد 64 بت عدد الفاصلة العائمة. ويتضمن سجل خلية LabelSst عدد صحيح 4 بايت التي تحدد سلسلة في سلاسل الجدول المشتركة (SST). على وجه التحديد، وعدد صحيح يتوافق مع مؤشر مجموعة في مجال RGB لطائرة أسرع من الصوت. سجل خلية الصيغة ويتضمن سجل خلية الفورمولا كل من الصيغة والبيانات الناتجة. يتم تعريف القيمة المعروضة في الخلية في بنية FormulaValue في 8 بايت التي تتبع بنية الخلية. يمكن تجاهل بايت 6 المقبلة، وبقية السجل هو بنية CellParsedFormula التي تحتوي على الصيغة نفسها. يحدد سجل MulBlank سلسلة من الخلايا الفارغة في صف واحد. 2 بايت الأولى تعطي الصف، و2 بايت المقبلة تعطي العمود الذي في سلسلة من الفراغات تبدأ في. المقبل، مجموعة طول متغير هياكل خلية تتبع لتخزين معلومات التنسيق، وتظهر بايت الأخيرة (2) ما العمود تنتهي سلسلة من الفراغات على. سجل MulRk مثل سجل MulBlank، ولكن بدلا من الخلايا الفارغة، ويتكون سجل MulRk البيانات RK في الهياكل RkRec. يحتوي على جدول سلسلة المشتركة (SST) كافة القيم سلسلة في المصنف. يتم الرجوع إليها هذه القيم في ورقة العمل السجلات خلية LabelSst. تعطي 8 بايت الأولى من طائرة أسرع من الصوت في عدد من الإشارات إلى السلاسل في المصنف وعدد من القيم سلسلة فريدة من نوعها في طائرة أسرع من الصوت. والباقي هو مجموعة من الهياكل XLUnicodeRichExtendedString التي تحتوي على سلاسل أنفسهم صفائف حرفا. 16 بت هذا الهيكل يحدد ما إذا كانت الشخصيات هي 1 بايت أو 2 بايت لكل منهما. يمكنك توسيع كل من هيكل طائرة أسرع من الصوت وهيكل XLUnicodeRichExtendedString باستخدام متابعة السجلات إذا كان عدد أو طول سلاسل تتجاوز حدودهم. استخراج البيانات من ملفات Excel كل MS-XLS محتوى ملف تنسيق يعيش في substreams ورقة. على الرغم من أنك يمكن تحميل كل substream رقة بشكل عشوائي، لكسب مزيد من السيطرة وكفاءة باستخدام سجلات BoundSheet8 لتحديد فقط الأوراق التي تريد قراءتها. تحليل الصيغ والمعلومات التهيئة خارج نطاق هذا المقال.

Comments