07.05.2014 Views

The Microsoft Excel File Format - OpenOffice.org

The Microsoft Excel File Format - OpenOffice.org

The Microsoft Excel File Format - OpenOffice.org

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

2 Document Structure<br />

Example 2: Hiragana left-aligned per character:<br />

とう きょう<br />

東 京<br />

type = 10 2 (hiragana)<br />

align = 01 2 (left-aligned)<br />

np = 2 (hiragana split into 2 portions)<br />

ln = 5 (length of entire hiragana text)<br />

Portion #1: cpa = 0 (start with 1 st hiragana character); cpm = 0; ccm = 1 (attach to 1 st character in main text)<br />

Portion #2: cpa = 2 (start with 3 rd hiragana character); cpm = 1; ccm = 1 (attach to 2 nd character in main text)<br />

2.5.4 RGB Colours<br />

Colour values are represented in RGB mode (red/green/blue).<br />

Offset Size Contents<br />

0 1 Red component<br />

1 1 Green component<br />

2 1 Blue component<br />

3 1 Not used<br />

In this documentation, constant colour values are written as 6-digit hexadecimal values in RGB notation: RRGGBB H .<br />

Example: <strong>The</strong> colour value FF8000 H describes the colour orange: red is FF H , green is 80 H , and blue is 00 H .<br />

2.5.5 RK Values<br />

An RK value is an encoded integer or floating-point value. RK values have a size of 4 bytes and are used to decrease file<br />

size for floating-point values.<br />

Structure of an RK value (32-bit value), BIFF3-BIFF8:<br />

Bit Mask Contents<br />

0 00000001 H 0 = Value not changed 1 = Encoded value is multiplied by 100<br />

1 00000002 H 0 = Floating-point value 1 = Signed integer value<br />

31-2 FFFFFFFC H Encoded value<br />

If bit 1 is cleared, the encoded value represents the 30 most significant bits of an IEEE 754 floating-point value (64-bit<br />

double precision). <strong>The</strong> 34 least significant bits must be set to zero. If bit 1 is set, the encoded value represents a signed<br />

30-bit integer value. To get the correct integer, the encoded value has to be shifted right arithmetically by 2 bits. If bit 0<br />

is set, the decoded value (both integer and floating-point) must be divided by 100 to get the final result.<br />

Examples:<br />

RK value Type Div 100 Encoded value Decoded value Result<br />

3FF00000 H float no 3FF00000 H 3FF0000000000000 H = 1.0 1.0<br />

3FF00001 H float yes 3FF00000 H 3FF0000000000000 H = 1.0 0.01<br />

004B5646 H integer no 004B5644 H 0012D591 H = 1234321 1234321<br />

004B5647 H integer yes 004B5644 H 0012D591 H = 1234321 12343.21<br />

20

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!