Ano ang isang XLSB file?
Ang format ng XLSB file ay tumutukoy sa Excel Binary File Format, na isang koleksyon ng mga talaan at istruktura na tumutukoy sa nilalaman ng Excel workbook. Ang nilalaman ay maaaring magsama ng hindi nakabalangkas o semi-structured na mga talahanayan ng mga numero, teksto, o parehong mga numero at teksto, mga formula, panlabas na koneksyon ng data, mga chart at mga larawan. Hindi tulad ng XLSX (na nakabatay sa Open XML file format), kinakatawan ng XLSB ang binary Excel workbook file. Ang mga XLSB file ay maaaring basahin at isulat sa mas mabilis na ginagawang kapaki-pakinabang ang mga ito para sa pagtatrabaho sa malalaking file. Ang XLSB ay bihirang ginagamit upang mag-imbak ng mga workbook dahil ang XLSX (at dati XLS) ay ang pinakakaraniwang pinili ng user na mga format ng file para sa pag-save ng mga workbook. Maaari itong buksan ng Microsoft Office 2007 at mas mataas.
Mga Detalye ng Format ng File ng XLSB
Ang mga detalye ng format ng file para sa XLSB file format ay ginawang pampubliko noong 2008 bilang bersyon 1.0. Simula noon, ilang beses na binago ang mga pagtutukoy at ang pinakabagong bersyon ng mga pagtutukoy (v 10.0) ay na-publish noong Abril 2018. Ang mga pagtutukoy ay magagamit ng publiko ng Microsoft bilang [MS-XLSB] - Mga detalye ng Excel Binary File Format at dapat konsultahin ng sinuman para sa pagbabasa o pagsusulat ng mga file sa XLSB file format.
XLSB File Structure
Ang XLSB file ay isang pakete na binubuo ng isang koleksyon ng mga bahagi. Ang mga bahaging ito ay naglalaman ng impormasyon tungkol sa mga nilalaman ng isang workbook, kabilang ang data ng workbook at ang istraktura ng package. Ang ilang bahagi ay naglalaman ng impormasyong nakaimbak gamit ang mga binary record, ang ilan ay XML, habang ang iba ay naglalaman ng impormasyong nakaimbak bilang isang binary stream ng mga byte.Ang bawat binary record ay naglalaman ng zero o higit pang mga structured na field na naglalaman ng data ng workbook.
Package
Ang isang XLSB package ay isang ZIP archive na dapat maglaman ng eksaktong isang bahagi ng workbook. Ang bahaging ito ay dapat na target ng isang relasyon sa bahaging ito ng relasyon sa package. Ang bahagi ng workbook ay ang panimulang bahagi sa dokumento ng XLSB.
Part
Ang isang bahagi ay isang stream ng mga byte na may nauugnay na uri ng nilalaman na tumutukoy sa katangian at uri ng nilalamang nakaimbak sa bahagi. Ang ilang bahagi ay nag-iimbak ng impormasyon sa binary na format habang ang iba ay nag-iimbak ng impormasyon bilang XML. Ang parts enumeration na seksyon ng dokumento ng mga detalye ay naglilista ng mga wastong bahagi, uri ng nilalaman at kinakailangan/opsyonal na mga ugnayan sa pagitan lahat ng bahagi sa isang pakete.
Relationship
Ang isang pinagmulan at isang target na mapagkukunan ay konektado sa pamamagitan ng isang relasyon. Ang isang relasyon ay maaaring:
Package relationship: where the target is a part and the source is the package as a whole
Part-to-part relationship: where the target is a part and the source is a part in the package
Explicit relationship: where a resource is referenced from the contents of a source part by referencing the ID attribute value of a relationship element
implicit relationship is a relationship that is not explicit
Internal relationship: where the target is a part in the package
External relationship: where the target is an external resource not in the package
Record
Ang record ay ang pangunahing building block na ginagamit upang mag-imbak ng impormasyon tungkol sa mga feature sa isang workbook. Ang bawat binary record ay isang variable-length sequence ng mga byte. Ang binary record ay binubuo ng tatlong bahagi:
- a record type
- a record size, and
- the record data that is specific to that record type.
Uri ng Record: Ipinapakita ng uri ng record ang uri ng record na tinukoy ng record. Tinutukoy din nito ang istruktura ng data ng tala na tiyak sa talaan na ito. Ang mga wastong uri ng tala ay nakalista sa Record Enumeration na seksyon ng dokumento ng mga detalye. Ang uri ng record ay dapat isa o dalawang byte at dapat na mas malaki sa o katumbas ng 128 at mas mababa sa 16384.
Laki ng Record: Tinutukoy ng laki ng tala ang bilang ng mga byte na tumutukoy sa kabuuang sukat ng data ng tala. DAPAT isa hanggang apat na byte ang value na ito. Ang halagang ito ay DAPAT na isang byte kung ang mataas na bit sa mababang byte ay katumbas ng 0; kung hindi, ang halagang ito ay DAPAT na mas malaki sa isang byte. Kung ang bilang ng mga byte ay mas malaki kaysa sa isang byte, ang mataas na bit sa bawat sunud-sunod na byte ay tumutukoy kung ang isang karagdagang byte ay ginagamit. Kung ang mataas na bit ng pangalawang byte ay katumbas ng 1, ang halagang ito ay DAPAT gumamit ng karagdagang ikatlong byte. Kung ang mataas na bit ng ikatlong byte ay katumbas ng 1, ang halagang ito ay DAPAT gumamit ng karagdagang ikaapat na byte. DAPAT balewalain ang mataas na bit ng ikaapat na byte. Ang halaga ay binubuo ng pitong mababang bit ng bawat byte na pinagsama. Ang mababa, hindi gaanong makabuluhang mga bit ay nasa loob ng unang byte, at ang bawat sunud-sunod na byte ay naglalaman ng mas mataas na mga bit ng pagkakasunud-sunod kaysa sa nakaraang byte.
Tala ng Data: Ang bahagi ng data ng talaan ay naglalaman ng mga patlang na tumutugma sa isang partikular na uri ng tala at binubuo ang natitira sa talaan. Ang pagkakasunud-sunod at istraktura ng mga patlang para sa isang naibigay na uri ng tala na nakalista sa Record Enumeration ay tinukoy sa kaukulang seksyon para sa uri ng tala na iyon sa Mga Tala.Ang kabuuang sukat ng bahagi ng data ng tala ay DAPAT na katumbas ng laki ng tala. Ang mga field sa bahagi ng record data ay maaaring maglaman ng mga simpleng value, array ng mga value, structure ng ilang field, array ng field, at array ng structures.
XLSB Record Example
Ang sumusunod na uri ng tala at laki ng tala ay tumutukoy ng isang BrtCommentText record na may sukat na 200 byte:
11111101 00000100 11001000 00000001 [Record Fields]
Ang unang byte ay 11111101, na tumutukoy sa mababang halaga na 125 at ang uri ng record ay nangangailangan ng pangalawang byte. Ang pangalawang byte ay 00000100, na tumutukoy sa isang mataas na halaga na 4 * 128, na katumbas ng 512. Ang halaga ng uri ng tala ay 125 + 512, o 637, na tumutugma sa isang BrtCommentText uri ng tala. Ang susunod na byte ay 11001000, na tumutukoy sa mababang halaga na 72 at ang laki ng record ay nangangailangan ng pangalawang byte. Ang pangalawang byte ay 00000001, na tumutukoy sa isang mas mataas na halaga ng 1 * 128 at ang laki ng record ay hindi nangangailangan ng karagdagang byte. Ang laki ng record ay 72 + 128, o 200, na tumutukoy sa kabuuang laki, sa byte, ng bahagi ng record data. Ang mga field sa bahagi ng record data ay tinukoy ng BrtCommentText.