line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
1
|
|
|
|
|
|
|
package Spreadsheet::ParseExcel::Dump; |
2
|
|
|
|
|
|
|
|
3
|
|
|
|
|
|
|
############################################################################### |
4
|
|
|
|
|
|
|
# |
5
|
|
|
|
|
|
|
# Spreadsheet::ParseExcel::Dump - A class for dumping Excel records. |
6
|
|
|
|
|
|
|
# |
7
|
|
|
|
|
|
|
# Used in conjunction with Spreadsheet::ParseExcel. |
8
|
|
|
|
|
|
|
# |
9
|
|
|
|
|
|
|
# Copyright (c) 2014 Douglas Wilson |
10
|
|
|
|
|
|
|
# Copyright (c) 2009-2013 John McNamara |
11
|
|
|
|
|
|
|
# Copyright (c) 2006-2008 Gabor Szabo |
12
|
|
|
|
|
|
|
# Copyright (c) 2000-2006 Kawai Takanori |
13
|
|
|
|
|
|
|
# |
14
|
|
|
|
|
|
|
# perltidy with standard settings. |
15
|
|
|
|
|
|
|
# |
16
|
|
|
|
|
|
|
# Documentation after __END__ |
17
|
|
|
|
|
|
|
# |
18
|
|
|
|
|
|
|
|
19
|
1
|
|
|
1
|
|
2321
|
use strict; |
|
1
|
|
|
|
|
3
|
|
|
1
|
|
|
|
|
36
|
|
20
|
1
|
|
|
1
|
|
6
|
use warnings; |
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
722
|
|
21
|
|
|
|
|
|
|
|
22
|
|
|
|
|
|
|
our $VERSION = '0.65'; |
23
|
|
|
|
|
|
|
|
24
|
|
|
|
|
|
|
my %NameTbl = ( |
25
|
|
|
|
|
|
|
|
26
|
|
|
|
|
|
|
#P291 |
27
|
|
|
|
|
|
|
0x0A => 'EOF', |
28
|
|
|
|
|
|
|
0x0C => 'CALCCOUNT', |
29
|
|
|
|
|
|
|
0x0D => 'CALCMODE', |
30
|
|
|
|
|
|
|
0x0E => 'PRECISION', |
31
|
|
|
|
|
|
|
0x0F => 'REFMODE', |
32
|
|
|
|
|
|
|
0x10 => 'DELTA', |
33
|
|
|
|
|
|
|
0x11 => 'ITERATION', |
34
|
|
|
|
|
|
|
0x12 => 'PROTECT', |
35
|
|
|
|
|
|
|
0x13 => 'PASSWORD', |
36
|
|
|
|
|
|
|
0x14 => 'HEADER', |
37
|
|
|
|
|
|
|
|
38
|
|
|
|
|
|
|
0x15 => 'FOOTER', |
39
|
|
|
|
|
|
|
0x16 => 'EXTERNCOUNT', |
40
|
|
|
|
|
|
|
0x17 => 'EXTERNSHEET', |
41
|
|
|
|
|
|
|
0x19 => 'WINDOWPROTECT', |
42
|
|
|
|
|
|
|
0x1A => 'VERTICALPAGEBREAKS', |
43
|
|
|
|
|
|
|
0x1B => 'HORIZONTALPAGEBREAKS', |
44
|
|
|
|
|
|
|
0x1C => 'NOTE', |
45
|
|
|
|
|
|
|
0x1D => 'SELECTION', |
46
|
|
|
|
|
|
|
0x22 => '1904', |
47
|
|
|
|
|
|
|
0x26 => 'LEFTMARGIN', |
48
|
|
|
|
|
|
|
|
49
|
|
|
|
|
|
|
0x27 => 'RIGHTMARGIN', |
50
|
|
|
|
|
|
|
0x28 => 'TOPMARGIN', |
51
|
|
|
|
|
|
|
0x29 => 'BOTTOMMARGIN', |
52
|
|
|
|
|
|
|
0x2A => 'PRINTHEADERS', |
53
|
|
|
|
|
|
|
0x2B => 'PRINTGRIDLINES', |
54
|
|
|
|
|
|
|
0x2F => 'FILEPASS', |
55
|
|
|
|
|
|
|
0x3C => 'COUNTINUE', |
56
|
|
|
|
|
|
|
0x3D => 'WINDOW1', |
57
|
|
|
|
|
|
|
0x40 => 'BACKUP', |
58
|
|
|
|
|
|
|
0x41 => 'PANE', |
59
|
|
|
|
|
|
|
|
60
|
|
|
|
|
|
|
0x42 => 'CODEPAGE', |
61
|
|
|
|
|
|
|
0x4D => 'PLS', |
62
|
|
|
|
|
|
|
0x50 => 'DCON', |
63
|
|
|
|
|
|
|
0x51 => 'DCONREF', |
64
|
|
|
|
|
|
|
|
65
|
|
|
|
|
|
|
#P292 |
66
|
|
|
|
|
|
|
0x52 => 'DCONNAME', |
67
|
|
|
|
|
|
|
0x55 => 'DEFCOLWIDTH', |
68
|
|
|
|
|
|
|
0x59 => 'XCT', |
69
|
|
|
|
|
|
|
0x5A => 'CRN', |
70
|
|
|
|
|
|
|
0x5B => 'FILESHARING', |
71
|
|
|
|
|
|
|
0x5C => 'WRITEACCES', |
72
|
|
|
|
|
|
|
0x5D => 'OBJ', |
73
|
|
|
|
|
|
|
0x5E => 'UNCALCED', |
74
|
|
|
|
|
|
|
0x5F => 'SAVERECALC', |
75
|
|
|
|
|
|
|
0x60 => 'TEMPLATE', |
76
|
|
|
|
|
|
|
|
77
|
|
|
|
|
|
|
0x63 => 'OBJPROTECT', |
78
|
|
|
|
|
|
|
0x7D => 'COLINFO', |
79
|
|
|
|
|
|
|
0x7E => 'RK', |
80
|
|
|
|
|
|
|
0x7F => 'IMDATA', |
81
|
|
|
|
|
|
|
0x80 => 'GUTS', |
82
|
|
|
|
|
|
|
0x81 => 'WSBOOL', |
83
|
|
|
|
|
|
|
0x82 => 'GRIDSET', |
84
|
|
|
|
|
|
|
0x83 => 'HCENTER', |
85
|
|
|
|
|
|
|
0x84 => 'VCENTER', |
86
|
|
|
|
|
|
|
0x85 => 'BOUNDSHEET', |
87
|
|
|
|
|
|
|
|
88
|
|
|
|
|
|
|
0x86 => 'WRITEPROT', |
89
|
|
|
|
|
|
|
0x87 => 'ADDIN', |
90
|
|
|
|
|
|
|
0x88 => 'EDG', |
91
|
|
|
|
|
|
|
0x89 => 'PUB', |
92
|
|
|
|
|
|
|
0x8C => 'COUNTRY', |
93
|
|
|
|
|
|
|
0x8D => 'HIDEOBJ', |
94
|
|
|
|
|
|
|
0x90 => 'SORT', |
95
|
|
|
|
|
|
|
0x91 => 'SUB', |
96
|
|
|
|
|
|
|
0x92 => 'PALETTE', |
97
|
|
|
|
|
|
|
0x94 => 'LHRECORD', |
98
|
|
|
|
|
|
|
|
99
|
|
|
|
|
|
|
0x95 => 'LHNGRAPH', |
100
|
|
|
|
|
|
|
0x96 => 'SOUND', |
101
|
|
|
|
|
|
|
0x98 => 'LPR', |
102
|
|
|
|
|
|
|
0x99 => 'STANDARDWIDTH', |
103
|
|
|
|
|
|
|
0x9A => 'FNGROUPNAME', |
104
|
|
|
|
|
|
|
0x9B => 'FILTERMODE', |
105
|
|
|
|
|
|
|
0x9C => 'FNGROUPCOUNT', |
106
|
|
|
|
|
|
|
|
107
|
|
|
|
|
|
|
#P293 |
108
|
|
|
|
|
|
|
0x9D => 'AUTOFILTERINFO', |
109
|
|
|
|
|
|
|
0x9E => 'AUTOFILTER', |
110
|
|
|
|
|
|
|
0xA0 => 'SCL', |
111
|
|
|
|
|
|
|
0xA1 => 'SETUP', |
112
|
|
|
|
|
|
|
0xA9 => 'COORDLIST', |
113
|
|
|
|
|
|
|
0xAB => 'GCW', |
114
|
|
|
|
|
|
|
0xAE => 'SCENMAN', |
115
|
|
|
|
|
|
|
0xAF => 'SCENARIO', |
116
|
|
|
|
|
|
|
0xB0 => 'SXVIEW', |
117
|
|
|
|
|
|
|
0xB1 => 'SXVD', |
118
|
|
|
|
|
|
|
|
119
|
|
|
|
|
|
|
0xB2 => 'SXV', |
120
|
|
|
|
|
|
|
0xB4 => 'SXIVD', |
121
|
|
|
|
|
|
|
0xB5 => 'SXLI', |
122
|
|
|
|
|
|
|
0xB6 => 'SXPI', |
123
|
|
|
|
|
|
|
0xB8 => 'DOCROUTE', |
124
|
|
|
|
|
|
|
0xB9 => 'RECIPNAME', |
125
|
|
|
|
|
|
|
0xBC => 'SHRFMLA', |
126
|
|
|
|
|
|
|
0xBD => 'MULRK', |
127
|
|
|
|
|
|
|
0xBE => 'MULBLANK', |
128
|
|
|
|
|
|
|
0xBF => 'TOOLBARHDR', |
129
|
|
|
|
|
|
|
0xC0 => 'TOOLBAREND', |
130
|
|
|
|
|
|
|
0xC1 => 'MMS', |
131
|
|
|
|
|
|
|
|
132
|
|
|
|
|
|
|
0xC2 => 'ADDMENU', |
133
|
|
|
|
|
|
|
0xC3 => 'DELMENU', |
134
|
|
|
|
|
|
|
0xC5 => 'SXDI', |
135
|
|
|
|
|
|
|
0xC6 => 'SXDB', |
136
|
|
|
|
|
|
|
0xCD => 'SXSTRING', |
137
|
|
|
|
|
|
|
0xD0 => 'SXTBL', |
138
|
|
|
|
|
|
|
0xD1 => 'SXTBRGIITM', |
139
|
|
|
|
|
|
|
0xD2 => 'SXTBPG', |
140
|
|
|
|
|
|
|
0xD3 => 'OBPROJ', |
141
|
|
|
|
|
|
|
0xD5 => 'SXISDTM', |
142
|
|
|
|
|
|
|
|
143
|
|
|
|
|
|
|
0xD6 => 'RSTRING', |
144
|
|
|
|
|
|
|
0xD7 => 'DBCELL', |
145
|
|
|
|
|
|
|
0xDA => 'BOOKBOOL', |
146
|
|
|
|
|
|
|
0xDC => 'PARAMQRY', |
147
|
|
|
|
|
|
|
0xDC => 'SXEXT', |
148
|
|
|
|
|
|
|
0xDD => 'SCENPROTECT', |
149
|
|
|
|
|
|
|
0xDE => 'OLESIZE', |
150
|
|
|
|
|
|
|
|
151
|
|
|
|
|
|
|
#P294 |
152
|
|
|
|
|
|
|
0xDF => 'UDDESC', |
153
|
|
|
|
|
|
|
0xE0 => 'XF', |
154
|
|
|
|
|
|
|
0xE1 => 'INTERFACEHDR', |
155
|
|
|
|
|
|
|
0xE2 => 'INTERFACEEND', |
156
|
|
|
|
|
|
|
0xE3 => 'SXVS', |
157
|
|
|
|
|
|
|
0xEA => 'TABIDCONF', |
158
|
|
|
|
|
|
|
0xEB => 'MSODRAWINGGROUP', |
159
|
|
|
|
|
|
|
0xEC => 'MSODRAWING', |
160
|
|
|
|
|
|
|
0xED => 'MSODRAWINGSELECTION', |
161
|
|
|
|
|
|
|
0xEF => 'PHONETICINFO', |
162
|
|
|
|
|
|
|
0xF0 => 'SXRULE', |
163
|
|
|
|
|
|
|
|
164
|
|
|
|
|
|
|
0xF1 => 'SXEXT', |
165
|
|
|
|
|
|
|
0xF2 => 'SXFILT', |
166
|
|
|
|
|
|
|
0xF6 => 'SXNAME', |
167
|
|
|
|
|
|
|
0xF7 => 'SXSELECT', |
168
|
|
|
|
|
|
|
0xF8 => 'SXPAIR', |
169
|
|
|
|
|
|
|
0xF9 => 'SXFMLA', |
170
|
|
|
|
|
|
|
0xFB => 'SXFORMAT', |
171
|
|
|
|
|
|
|
0xFC => 'SST', |
172
|
|
|
|
|
|
|
0xFD => 'LABELSST', |
173
|
|
|
|
|
|
|
0xFF => 'EXTSST', |
174
|
|
|
|
|
|
|
|
175
|
|
|
|
|
|
|
0x100 => 'SXVDEX', |
176
|
|
|
|
|
|
|
0x103 => 'SXFORMULA', |
177
|
|
|
|
|
|
|
0x122 => 'SXDBEX', |
178
|
|
|
|
|
|
|
0x13D => 'TABID', |
179
|
|
|
|
|
|
|
0x160 => 'USESELFS', |
180
|
|
|
|
|
|
|
0x161 => 'DSF', |
181
|
|
|
|
|
|
|
0x162 => 'XL5MODIFY', |
182
|
|
|
|
|
|
|
0x1A5 => 'FILESHARING2', |
183
|
|
|
|
|
|
|
0x1A9 => 'USERBVIEW', |
184
|
|
|
|
|
|
|
0x1AA => 'USERVIEWBEGIN', |
185
|
|
|
|
|
|
|
|
186
|
|
|
|
|
|
|
0x1AB => 'USERSVIEWEND', |
187
|
|
|
|
|
|
|
0x1AD => 'QSI', |
188
|
|
|
|
|
|
|
0x1AE => 'SUPBOOK', |
189
|
|
|
|
|
|
|
0x1AF => 'PROT4REV', |
190
|
|
|
|
|
|
|
0x1B0 => 'CONDFMT', |
191
|
|
|
|
|
|
|
0x1B1 => 'CF', |
192
|
|
|
|
|
|
|
0x1B2 => 'DVAL', |
193
|
|
|
|
|
|
|
|
194
|
|
|
|
|
|
|
#P295 |
195
|
|
|
|
|
|
|
0x1B5 => 'DCONBIN', |
196
|
|
|
|
|
|
|
0x1B6 => 'TXO', |
197
|
|
|
|
|
|
|
0x1B7 => 'REFRESHALL', |
198
|
|
|
|
|
|
|
0x1B8 => 'HLINK', |
199
|
|
|
|
|
|
|
0x1BA => 'CODENAME', |
200
|
|
|
|
|
|
|
0x1BB => 'SXFDBTYPE', |
201
|
|
|
|
|
|
|
0x1BC => 'PROT4REVPASS', |
202
|
|
|
|
|
|
|
0x1BE => 'DV', |
203
|
|
|
|
|
|
|
0x200 => 'DIMENSIONS', |
204
|
|
|
|
|
|
|
0x201 => 'BLANK', |
205
|
|
|
|
|
|
|
|
206
|
|
|
|
|
|
|
0x202 => 'Integer', #Not Documented |
207
|
|
|
|
|
|
|
0x203 => 'NUMBER', |
208
|
|
|
|
|
|
|
0x204 => 'LABEL', |
209
|
|
|
|
|
|
|
0x205 => 'BOOLERR', |
210
|
|
|
|
|
|
|
0x207 => 'STRING', |
211
|
|
|
|
|
|
|
0x208 => 'ROW', |
212
|
|
|
|
|
|
|
0x20B => 'INDEX', |
213
|
|
|
|
|
|
|
0x218 => 'NAME', |
214
|
|
|
|
|
|
|
0x221 => 'ARRAY', |
215
|
|
|
|
|
|
|
0x223 => 'EXTERNNAME', |
216
|
|
|
|
|
|
|
0x225 => 'DEFAULTROWHEIGHT', |
217
|
|
|
|
|
|
|
|
218
|
|
|
|
|
|
|
0x231 => 'FONT', |
219
|
|
|
|
|
|
|
0x236 => 'TABLE', |
220
|
|
|
|
|
|
|
0x23E => 'WINDOW2', |
221
|
|
|
|
|
|
|
0x293 => 'STYLE', |
222
|
|
|
|
|
|
|
0x406 => 'FORMULA', |
223
|
|
|
|
|
|
|
0x41E => 'FORMAT', |
224
|
|
|
|
|
|
|
|
225
|
|
|
|
|
|
|
0x18 => 'NAME', |
226
|
|
|
|
|
|
|
|
227
|
|
|
|
|
|
|
0x06 => 'FORMULA', |
228
|
|
|
|
|
|
|
|
229
|
|
|
|
|
|
|
0x09 => 'BOF(BIFF2)', |
230
|
|
|
|
|
|
|
0x209 => 'BOF(BIFF3)', |
231
|
|
|
|
|
|
|
0x409 => 'BOF(BIFF4)', |
232
|
|
|
|
|
|
|
0x809 => 'BOF(BIFF5-7)', |
233
|
|
|
|
|
|
|
|
234
|
|
|
|
|
|
|
0x31 => 'FONT', 0x27E => 'RK', |
235
|
|
|
|
|
|
|
|
236
|
|
|
|
|
|
|
#Chart/Graph |
237
|
|
|
|
|
|
|
0x1001 => 'UNITS', |
238
|
|
|
|
|
|
|
0x1002 => 'CHART', |
239
|
|
|
|
|
|
|
0x1003 => 'SERISES', |
240
|
|
|
|
|
|
|
0x1006 => 'DATAFORMAT', |
241
|
|
|
|
|
|
|
0x1007 => 'LINEFORMAT', |
242
|
|
|
|
|
|
|
0x1009 => 'MAKERFORMAT', |
243
|
|
|
|
|
|
|
0x100A => 'AREAFORMAT', |
244
|
|
|
|
|
|
|
0x100B => 'PIEFORMAT', |
245
|
|
|
|
|
|
|
0x100C => 'ATTACHEDLABEL', |
246
|
|
|
|
|
|
|
0x100D => 'SERIESTEXT', |
247
|
|
|
|
|
|
|
0x1014 => 'CHARTFORMAT', |
248
|
|
|
|
|
|
|
0x1015 => 'LEGEND', |
249
|
|
|
|
|
|
|
0x1016 => 'SERIESLIST', |
250
|
|
|
|
|
|
|
0x1017 => 'BAR', |
251
|
|
|
|
|
|
|
0x1018 => 'LINE', |
252
|
|
|
|
|
|
|
0x1019 => 'PIE', |
253
|
|
|
|
|
|
|
0x101A => 'AREA', |
254
|
|
|
|
|
|
|
0x101B => 'SCATTER', |
255
|
|
|
|
|
|
|
0x101C => 'CHARTLINE', |
256
|
|
|
|
|
|
|
0x101D => 'AXIS', |
257
|
|
|
|
|
|
|
0x101E => 'TICK', |
258
|
|
|
|
|
|
|
0x101F => 'VALUERANGE', |
259
|
|
|
|
|
|
|
0x1020 => 'CATSERRANGE', |
260
|
|
|
|
|
|
|
0x1021 => 'AXISLINEFORMAT', |
261
|
|
|
|
|
|
|
0x1022 => 'CHARTFORMATLINK', |
262
|
|
|
|
|
|
|
0x1024 => 'DEFAULTTEXT', |
263
|
|
|
|
|
|
|
0x1025 => 'TEXT', |
264
|
|
|
|
|
|
|
0x1026 => 'FONTX', |
265
|
|
|
|
|
|
|
0x1027 => 'OBJECTLINK', |
266
|
|
|
|
|
|
|
0x1032 => 'FRAME', |
267
|
|
|
|
|
|
|
0x1033 => 'BEGIN', |
268
|
|
|
|
|
|
|
0x1034 => 'END', |
269
|
|
|
|
|
|
|
0x1035 => 'PLOTAREA', |
270
|
|
|
|
|
|
|
0x103A => '3D', |
271
|
|
|
|
|
|
|
0x103C => 'PICF', |
272
|
|
|
|
|
|
|
0x103D => 'DROPBAR', |
273
|
|
|
|
|
|
|
0x103E => 'RADAR', |
274
|
|
|
|
|
|
|
0x103F => 'SURFACE', |
275
|
|
|
|
|
|
|
0x1040 => 'RADARAREA', |
276
|
|
|
|
|
|
|
0x1041 => 'AXISPARENT', |
277
|
|
|
|
|
|
|
0x1043 => 'LEGENDXN', |
278
|
|
|
|
|
|
|
0x1044 => 'SHTPROPS', |
279
|
|
|
|
|
|
|
0x1045 => 'SERTOCRT', |
280
|
|
|
|
|
|
|
0x1046 => 'AXESUSED', |
281
|
|
|
|
|
|
|
0x1048 => 'SBASEREF', |
282
|
|
|
|
|
|
|
0x104A => 'SERPARENT', |
283
|
|
|
|
|
|
|
0x104B => 'SERAUXTREND', |
284
|
|
|
|
|
|
|
0x104E => 'IFMT', |
285
|
|
|
|
|
|
|
0x104F => 'POS', |
286
|
|
|
|
|
|
|
0x1050 => 'ALRUNS', |
287
|
|
|
|
|
|
|
0x1051 => 'AI', |
288
|
|
|
|
|
|
|
0x105B => 'SERAUXERRBAR', |
289
|
|
|
|
|
|
|
0x105D => 'SERFMT', |
290
|
|
|
|
|
|
|
0x1060 => 'FBI', |
291
|
|
|
|
|
|
|
0x1061 => 'BOPPOP', |
292
|
|
|
|
|
|
|
0x1062 => 'AXCEXT', |
293
|
|
|
|
|
|
|
0x1063 => 'DAT', |
294
|
|
|
|
|
|
|
0x1064 => 'PLOTGROWTH', |
295
|
|
|
|
|
|
|
0x1065 => 'SINDEX', |
296
|
|
|
|
|
|
|
0x1066 => 'GELFRAME', |
297
|
|
|
|
|
|
|
0x1067 => 'BPOPPOPCUSTOM', |
298
|
|
|
|
|
|
|
); |
299
|
|
|
|
|
|
|
|
300
|
|
|
|
|
|
|
#------------------------------------------------------------------------------ |
301
|
|
|
|
|
|
|
# subDUMP (for Spreadsheet::ParseExcel) |
302
|
|
|
|
|
|
|
#------------------------------------------------------------------------------ |
303
|
|
|
|
|
|
|
sub subDUMP { |
304
|
0
|
|
|
0
|
0
|
|
my ( $oBook, $bOp, $bLen, $sWk ) = @_; |
305
|
0
|
|
|
|
|
|
printf "%04X:%-23s (Len:%3d) : %s\n", |
306
|
|
|
|
|
|
|
$bOp, OpName($bOp), $bLen, unpack( "H40", $sWk ); |
307
|
|
|
|
|
|
|
} |
308
|
|
|
|
|
|
|
|
309
|
|
|
|
|
|
|
#------------------------------------------------------------------------------ |
310
|
|
|
|
|
|
|
# Spreadsheet::ParseExcel->OpName |
311
|
|
|
|
|
|
|
#------------------------------------------------------------------------------ |
312
|
|
|
|
|
|
|
sub OpName { |
313
|
0
|
|
|
0
|
0
|
|
my ($bOp) = @_; |
314
|
0
|
0
|
|
|
|
|
return ( defined $NameTbl{$bOp} ) ? $NameTbl{$bOp} : 'undef'; |
315
|
|
|
|
|
|
|
} |
316
|
|
|
|
|
|
|
|
317
|
|
|
|
|
|
|
1; |
318
|
|
|
|
|
|
|
|
319
|
|
|
|
|
|
|
__END__ |