分享
 
 
 

[规范资料]Excel文件格式

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

MICROSOFT EXCEL FILE FORMAT

Microsoft Excel is a popular spreadsheet.It uses a file format called BIFF (Binary

File Format).There are many types of BIFF records. Each has a 4 byte header.The

first two bytes are an opcode that specifies the record type. The second two bytes

specify record length.Header values are stored in byte-reversed form (less significant

byte first).The rest of the record is the data itself (Figure 2-1).

Figure 2-1.BIFF record header.

|Record Header|Record Body

Byte Number|0 123 | 01 ...

-----------------------------------

Record Contents| XX | XX | XX | XX | XX | XX | ...

-----------------------------------

| opcode | length| data

Each X represents a hexadecimal digit

Two X's form a byte.The least significant (low) byte of the opcode is byte 0 and the

most significant (high) byte is byte 1.Similarly, the low byte of the record length

field is byte 2 and the high byte is byte 3.

BOF (Beginning of File)

The first record in every spreadsheet is always of the BOF type (Figure 2-2).

Figure 2-2.BOF record.

|Record Header|Record Body|

Byte | 0123 |012 3 |

-----------------------------------------

Contents | 09 | 00 | 04 | 00 | 02 | 00 | 10 | 00 |

-----------------------------------------

| opcode| length| version |file |

| | |number |type |

The first two bytes, arranged with the low byte first, show that the opcode for BOF is

09h.The second two bytes indicate that the record body is 4 bytes long.The first two

bytes of the body are the version number (2 for the initial version of Excel).The last

two bytes are the file type.Type 10h is a worksheet file.

Relating Spreadsheet Cells to Record Data Bytes

A spreadsheet appears on a screen or printout as a matrix of rectangular cells.Each

column is identified by a letter at its top, and each row is identified by a number.

Thus cell A1 is in the first column and the first row.Cell C240 is in the third column

and the 240th row.This scheme identifies cells in a way easily understood by people.

However, it is not particularly convenient for computers, as they do not handle letters

efficiently.They are best at dealing with binary numbers.Thus, Excel stores cell

identifiers as binary numbers, that people can read as hexadecimal.The first number in

the system is 0 rather than 1.

Figure 2-3, which shows the form of an INTEGER record, illustrates the storage of column

and row information.

Figure 2-3.INTEGER record.

|Record Header|Record Body

Byte|01 23 |0 123 456 78 |

------------------------------------------------------------------

Value | 02 | 00 | 09 | 00 | 00 | 00 | 02 | 00 | 00 | 00 | 00 | 39 | 00 |

------------------------------------------------------------------

| opcode| length | row | column| rgbAttr|w |

Opcode 2 indicates an integer record.The length bytes show that the record body is 9

bytes long.Row 0 in the body corresponds to spreadsheet row 1.Row 1 corresponds to

spreadsheet row 2, and so on.Column 2 corresponds to spreadsheet column C.Thus,

Figure 2-3 deals with cell C1.The next three bytes, labeled "rgbAttr," specify cell

attributes (Table 2-3).The final pair of bytes, (labeled "w") holds the integer's

value.Here it is 39H or 57 decimal.Thus the record specifies that cell C1 of the

spreadsheet contains an integer with the value 57.

Standard File Record Order

Excel worksheet files have each record type in a predetermined position.A file need

not have all types, but the ones that are present are always be in the same order.

Table 2-1 lists the record types for Excel document (spreadsheet) files, in the order

they would appear in a BIFF file.Table 2-2 lists the types in opcode order.

Several record types in a BIFF file, namely, ROW, BLANK, INTEGER, NUMBER, LABEL,

BOOLERR, FORMULA, and COLUMN DEFAULT, describe the contents of a cell.These records

contain a 3 byte attribute field labeled "rgbAttr".The following table describes how

thebits in the field correspond to cell attributes.

Table 2-1.Cell Attributes

Byte Offset Bit Description Contents

0 7 Cell is not hidden 0b

Cell is hidden 1b

6 Cell is not locked 0b

Cell is locked 1b

5-0 Reserved, must be 0 000000b

7-6 Font number (4 possible)

5-0 Cell format code

2 7 Cell is not shaded 0b

Cell is shaded 1b

6 Cell has no bottom border 0b

Cell has a bottom border 1b

5 Cell has no top border0b

Cell has a top border 1b

4 Cell has no right border0b

Cell has a right border 1b

3 Cell has no left border 0b

Cell has a left border1b

2-0 Cell alignment code

general 000b

left 001b

center 010b

right 011b

fill 100b

Multiplan default align. 111b

The font number field is a zero-based index into the document's table of fonts.the

cell format code is a zero-based index into the document's table of picture formats.

There are 21 different standard formats.Additional custom formats may be defined by

the user.See the FONT and FORMAT record descriptions form additonal details.

Table 2-2.Excel Record Type in Order of Appearance

Record Type Opcode (Hexadecimal)

BOF 09

FILEPASS 2F

INDEX 0B

CALCCOUNT 0C

CALCMODE 0D

PRECISION 0E

REFMODE 0F

DELTA 10

ITERATION 11

1904 22

BACKUP 40

PRINT ROW HEADERS 2A

PRINT GRIDLINES 2B

HORIZONTAL PAGE BREAKS 1B

VERTICAL PAGE BREAKS1A

DEFAULT ROW HEIGHT 25

FONT 31

FONT2 32

HEADER 14

FOOTER 15

LEFT MARGIN 26

RIGHT MARGIN 27

TOP MARGIN 28

BOTTOM MARGIN 29

COLWIDTH 24

EXTERNCOUNT 16

EXTERNSHEET 17

EXTERNNAME 23

FORMATCOUNT 1F

FORMAT 1E

NAME 18

DIMENSIONS 00

COLUMN DEFAULT 20

ROW 08

BLANK 01

INTEGER 02

NUMBER 03

LABEL 04

BOOLERR 05

FORMULA 06

ARRAY 21

CONTINUE 3C

STRING 07

TABLE 36

TABLE2 37

PROTECT 12

WINDOW PROTECT 19

PASSWORD 13

NOTE 1C

WINDOW1 3D

WINDOW2 3E

PANE 41

SELECTION 1D

EOF 0A

Table 2-3.Excel Record Types in Opcode Order

Record Type Opcode (hexadecimal)

DIMENSIONS 00

BLANK 01

INTEGER 02

NUMBER 03

LABEL 04

BOOLERR 05

FORMULA 06

STRING 07

ROW 08

BOF 09

EOF 0A

INDEX 0B

CALCCOUNT 0C

CALCMODE 0D

PRECISION 0E

REFMODE 0F

DELTA 10

ITERATION 11

PROTECT 12

PASSWORD 13

HEADER 14

FOOTER 15

EXTERNCOUNT 16

EXTERNSHEET 17

NAME 18

WINDOW PROTECT 19

VERTICAL PAGE BREAKS 1A

HORIZONTAL PAGE BREAKS 1B

NOTE 1C

SELECTION 1D

FORMAT 1E

FORMATCOUNT 1F

COLUMN DEFAULT 20

ARRAY 21

1904 22

EXTERNNAME 23

COLWIDTH 24

DEFAULT ROW HEIGHT 25

LEFT MARGIN 26

RIGHT MARGIN 27

TOP MARGIN 28

BOTTOM MARGIN 29

PRINT ROW HEADERS 2A

PRINT GRIDLINES 2B

FILEPASS 2F

FONT 31

FONT2 32

TABLE 36

TABLE2 37

CONTINUE 3C

WINDOW1 3D

WINDOW2 3E

BACKUP 40

PANE 41

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有