Τι είναι ένα αρχείο XLSB;
Η μορφή αρχείου XLSB καθορίζει τη Μορφή δυαδικού αρχείου του Excel, η οποία είναι μια συλλογή εγγραφών και δομών που καθορίζουν το περιεχόμενο του βιβλίου εργασίας του Excel. Το περιεχόμενο μπορεί να περιλαμβάνει αδόμητους ή ημι-δομημένους πίνακες αριθμών, κείμενο ή και αριθμούς και κείμενο, τύπους, εξωτερικές συνδέσεις δεδομένων, γραφήματα και εικόνες. Σε αντίθεση με το XLSX (το οποίο βασίζεται σε μορφή αρχείου Open XML), το XLSB αντιπροσωπεύει το δυαδικό αρχείο βιβλίου εργασίας του Excel. Τα αρχεία XLSB μπορούν να διαβαστούν και να γραφτούν ταχύτερα, γεγονός που τα καθιστά χρήσιμα για εργασία με μεγάλα αρχεία. Το XLSB χρησιμοποιείται σπάνια για την αποθήκευση βιβλίων εργασίας καθώς το XLSX (και προηγουμένως το XLS) ήταν οι πιο συνηθισμένες μορφές αρχείων που επιλέγονται από τον χρήστη για την αποθήκευση βιβλίων εργασίας. Μπορεί να ανοίξει από το Microsoft Office 2007 και νεότερη έκδοση.
Προδιαγραφές μορφής αρχείου XLSB
Οι προδιαγραφές μορφής αρχείου για τη μορφή αρχείου XLSB δημοσιοποιήθηκαν το 2008 ως έκδοση 1.0. Έκτοτε, οι προδιαγραφές έχουν αναθεωρηθεί αρκετές φορές και η τελευταία έκδοση των προδιαγραφών (v 10.0) δημοσιεύτηκε τον Απρίλιο του 2018. Οι προδιαγραφές είναι διαθέσιμες δημόσια από τη Microsoft ως [[MS-XLSB] - Excel Binary File Format προδιαγραφές](https:/ /msdn.microsoft.com/en-us/library/cc313133(v#office.12).aspx) και θα πρέπει να συμβουλεύεται οποιοσδήποτε για ανάγνωση ή εγγραφή αρχείων σε μορφή αρχείου XLSB.
Δομή αρχείου XLSB
Ένα αρχείο XLSB είναι ένα πακέτο που αποτελείται από μια συλλογή εξαρτημάτων. Αυτά τα μέρη περιέχουν πληροφορίες σχετικά με τα περιεχόμενα ενός βιβλίου εργασίας, συμπεριλαμβανομένων των δεδομένων βιβλίου εργασίας και της δομής του πακέτου. Ορισμένα τμήματα περιέχουν πληροφορίες που είναι αποθηκευμένες χρησιμοποιώντας δυαδικές εγγραφές, μερικά ως XML, ενώ άλλα περιέχουν πληροφορίες αποθηκευμένες ως δυαδική ροή byte. Κάθε δυαδική εγγραφή περιέχει μηδέν ή περισσότερα δομημένα πεδία που περιέχουν τα δεδομένα του βιβλίου εργασίας.
Πακέτο
Ένα πακέτο XLSB είναι ένα αρχείο ZIP που πρέπει να περιέχει ακριβώς ένα τμήμα βιβλίου εργασίας. Αυτό το μέρος πρέπει να είναι ο στόχος μιας σχέσης σε αυτό το τμήμα σχέσης πακέτου. Το μέρος του βιβλίου εργασίας είναι το αρχικό μέρος στο έγγραφο XLSB.
Μέρος
Ένα τμήμα είναι μια ροή byte που έχει έναν συσχετισμένο τύπο περιεχομένου που καθορίζει τη φύση και τον τύπο του περιεχομένου που είναι αποθηκευμένο στο τμήμα. Ορισμένα μέρη αποθηκεύουν πληροφορίες σε δυαδική μορφή ενώ άλλα αποθηκεύουν πληροφορίες ως XML. Η ενότητα αριθμός εξαρτημάτων του εγγράφου προδιαγραφών παραθέτει τα έγκυρα μέρη, τους τύπους περιεχομένου και τις απαιτούμενες/προαιρετικές σχέσεις μεταξύ όλα τα μέρη σε συσκευασία.
Σχέση
Μια πηγή και ένας πόρος στόχος συνδέονται με μια σχέση. Μια σχέση μπορεί να είναι:
Σχέση πακέτου: όπου ο στόχος είναι ένα μέρος και η πηγή είναι το πακέτο ως σύνολο
Σχέση μέρους προς μέρος: όπου ο στόχος είναι ένα μέρος και η πηγή είναι ένα μέρος στο πακέτο
Ρητή σχέση: όπου ένας πόρος αναφέρεται από τα περιεχόμενα ενός τμήματος πηγής με αναφορά στην τιμή του χαρακτηριστικού ID ενός στοιχείου σχέσης
Η σιωπηρή σχέση είναι μια σχέση που δεν είναι ρητή
Εσωτερική σχέση: όπου ο στόχος είναι μέρος του πακέτου
Εξωτερική σχέση: όπου ο στόχος είναι ένας εξωτερικός πόρος που δεν βρίσκεται στο πακέτο
Ρεκόρ
Μια εγγραφή είναι το βασικό δομικό στοιχείο που χρησιμοποιείται για την αποθήκευση πληροφοριών σχετικά με δυνατότητες σε ένα βιβλίο εργασίας. Κάθε δυαδική εγγραφή είναι μια ακολουθία byte μεταβλητού μήκους. Μια δυαδική εγγραφή αποτελείται από τρία στοιχεία:
- τύπος εγγραφής
- ένα μέγεθος ρεκόρ και
- τα δεδομένα εγγραφής που είναι ειδικά για αυτόν τον τύπο εγγραφής.
Τύπος εγγραφής: Ο τύπος εγγραφής δείχνει τον τύπο εγγραφής που καθορίζεται από την εγγραφή. Καθορίζει επίσης τη δομή των δεδομένων εγγραφής ειδικά για αυτήν την εγγραφή. Οι έγκυροι τύποι εγγραφών παρατίθενται στην ενότητα Record Enumeration του εγγράφου προδιαγραφών. Ο τύπος εγγραφής πρέπει να είναι ένα ή δύο byte και πρέπει να είναι μεγαλύτερος ή ίσος με 128 και μικρότερος από 16384.
Μέγεθος εγγραφής: Το μέγεθος εγγραφής καθορίζει τον αριθμό των byte που καθορίζει το συνολικό μέγεθος των δεδομένων εγγραφής. Αυτή η τιμή ΠΡΕΠΕΙ να είναι ένα έως τέσσερα byte. Αυτή η τιμή ΠΡΕΠΕΙ να είναι ένα byte εάν το υψηλό bit στο χαμηλό byte είναι ίσο με 0. Διαφορετικά, αυτή η τιμή ΠΡΕΠΕΙ να είναι μεγαλύτερη από ένα byte. Εάν ο αριθμός των byte είναι μεγαλύτερος από ένα byte, το υψηλό bit σε κάθε διαδοχικό byte καθορίζει εάν χρησιμοποιείται ένα επιπλέον byte. Εάν το υψηλό bit του δεύτερου byte είναι ίσο με 1, τότε αυτή η τιμή ΠΡΕΠΕΙ να χρησιμοποιεί ένα επιπλέον τρίτο byte. Εάν το υψηλό bit του τρίτου byte είναι ίσο με 1, τότε αυτή η τιμή ΠΡΕΠΕΙ να χρησιμοποιεί ένα επιπλέον τέταρτο byte. Το υψηλό bit του τέταρτου byte ΠΡΕΠΕΙ να αγνοηθεί. Η τιμή αποτελείται από τα επτά χαμηλά bit κάθε byte συνδυασμένα. Τα χαμηλά, λιγότερο σημαντικά bit περιέχονται στο πρώτο byte και κάθε διαδοχικό byte περιέχει bit υψηλότερης τάξης από το προηγούμενο byte.
Δεδομένα εγγραφής: Το στοιχείο δεδομένων εγγραφής περιέχει πεδία που αντιστοιχούν σε έναν συγκεκριμένο τύπο εγγραφής και αποτελούν το υπόλοιπο της εγγραφής. Η σειρά και η δομή των πεδίων για έναν δεδομένο τύπο εγγραφής που παρατίθεται στην Αριθμός εγγραφών καθορίζονται στην αντίστοιχη ενότητα για αυτόν τον τύπο εγγραφής στις Εγγραφές. Το συνολικό μέγεθος του στοιχείου δεδομένων εγγραφής ΠΡΕΠΕΙ να είναι ίσο με το μέγεθος της εγγραφής. Τα πεδία στο στοιχείο δεδομένων εγγραφής μπορούν να περιέχουν απλές τιμές, πίνακες τιμών, δομές πολλών πεδίων, πίνακες πεδίων και πίνακες δομών.
Παράδειγμα εγγραφής XLSB
Ο ακόλουθος τύπος εγγραφής και το μέγεθος εγγραφής καθορίζουν μια εγγραφή BrtCommentText με μέγεθος 200 byte:
11111101 00000100 11001000 00000001 [Πεδία εγγραφής]
Το πρώτο byte είναι 11111101, προσδιορίζοντας μια χαμηλή τιμή 125 και ότι ο τύπος εγγραφής απαιτεί ένα δεύτερο byte. Το δεύτερο byte είναι 00000100, προσδιορίζοντας μια υψηλή τιμή 4 * 128, που ισούται με 512. Η τιμή τύπου εγγραφής είναι 125 + 512 ή 637, που αντιστοιχεί σε έναν τύπο εγγραφής BrtCommentText. Το επόμενο byte είναι 11001000, προσδιορίζοντας μια χαμηλή τιμή 72 και ότι το μέγεθος της εγγραφής απαιτεί ένα δεύτερο byte. Το δεύτερο byte είναι 00000001, προσδιορίζοντας υψηλότερη τιμή 1 * 128 και ότι το μέγεθος της εγγραφής δεν απαιτεί επιπλέον byte. Το μέγεθος εγγραφής είναι 72 + 128 ή 200, το οποίο καθορίζει το συνολικό μέγεθος, σε byte, του στοιχείου δεδομένων εγγραφής. Τα πεδία στο στοιχείο δεδομένων εγγραφής καθορίζονται από το BrtCommentText.