File Coverage

blib/lib/Spreadsheet/ParseExcel/Dump.pm
Criterion Covered Total %
statement 6 10 60.0
branch 0 2 0.0
condition n/a
subroutine 2 4 50.0
pod 0 2 0.0
total 8 18 44.4


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__