forked from extrame/xls
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathflag.go
122 lines (116 loc) · 4.56 KB
/
flag.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
package xls
// Original file header of ParseXL (used as the base for this class):
// --------------------------------------------------------------------------------
// Adapted from Excel_Spreadsheet_Reader developed by users bizon153,
// trex005, and mmp11 (SourceForge.net)
// https://sourceforge.net/projects/phpexcelreader/
// Primary changes made by canyoncasa (dvc) for ParseXL 1.00 ...
// Modelled moreso after Perl Excel Parse/Write modules
// Added Parse_Excel_Spreadsheet object
// Reads a whole worksheet or tab as row,column array or as
// associated hash of indexed rows and named column fields
// Added variables for worksheet (tab) indexes and names
// Added an object call for loading individual woorksheets
// Changed default indexing defaults to 0 based arrays
// Fixed date/time and percent formats
// Includes patches found at SourceForge...
// unicode patch by nobody
// unpack("d") machine depedency patch by matchy
// boundsheet utf16 patch by bjaenichen
// Renamed functions for shorter names
// General code cleanup and rigor, including <80 column width
// Included a testcase Excel file and PHP example calls
// Code works for PHP 5.x
// Primary changes made by canyoncasa (dvc) for ParseXL 1.10 ...
// http://sourceforge.net/tracker/index.php?func=detail&aid=1466964&group_id=99160&atid=623334
// Decoding of formula conditions, results, and tokens.
// Support for user-defined named cells added as an array "namedcells"
// Patch code for user-defined named cells supports single cells only.
// NOTE: this patch only works for BIFF8 as BIFF5-7 use a different
// external sheet reference structure
// ParseXL definitions
const XLS_BIFF8 = 0x0600
const XLS_BIFF7 = 0x0500
const XLS_WorkbookGlobals = 0x0005
const XLS_Worksheet = 0x0010
// record identifiers
const XLS_Type_FORMULA = 0x0006
const XLS_Type_EOF = 0x000a
const XLS_Type_PROTECT = 0x0012
const XLS_Type_OBJECTPROTECT = 0x0063
const XLS_Type_SCENPROTECT = 0x00dd
const XLS_Type_PASSWORD = 0x0013
const XLS_Type_HEADER = 0x0014
const XLS_Type_FOOTER = 0x0015
const XLS_Type_EXTERNSHEET = 0x0017
const XLS_Type_DEFINEDNAME = 0x0018
const XLS_Type_VERTICALPAGEBREAKS = 0x001a
const XLS_Type_HORIZONTALPAGEBREAKS = 0x001b
const XLS_Type_NOTE = 0x001c
const XLS_Type_SELECTION = 0x001d
const XLS_Type_DATEMODE = 0x0022
const XLS_Type_EXTERNNAME = 0x0023
const XLS_Type_LEFTMARGIN = 0x0026
const XLS_Type_RIGHTMARGIN = 0x0027
const XLS_Type_TOPMARGIN = 0x0028
const XLS_Type_BOTTOMMARGIN = 0x0029
const XLS_Type_PRINTGRIDLINES = 0x002b
const XLS_Type_FILEPASS = 0x002f
const XLS_Type_FONT = 0x0031
const XLS_Type_CONTINUE = 0x003c
const XLS_Type_PANE = 0x0041
const XLS_Type_CODEPAGE = 0x0042
const XLS_Type_DEFCOLWIDTH = 0x0055
const XLS_Type_OBJ = 0x005d
const XLS_Type_COLINFO = 0x007d
const XLS_Type_IMDATA = 0x007f
const XLS_Type_SHEETPR = 0x0081
const XLS_Type_HCENTER = 0x0083
const XLS_Type_VCENTER = 0x0084
const XLS_Type_SHEET = 0x0085
const XLS_Type_PALETTE = 0x0092
const XLS_Type_SCL = 0x00a0
const XLS_Type_PAGESETUP = 0x00a1
const XLS_Type_MULRK = 0x00bd
const XLS_Type_MULBLANK = 0x00be
const XLS_Type_DBCELL = 0x00d7
const XLS_Type_XF = 0x00e0
const XLS_Type_MERGEDCELLS = 0x00e5
const XLS_Type_MSODRAWINGGROUP = 0x00eb
const XLS_Type_MSODRAWING = 0x00ec
const XLS_Type_SST = 0x00fc
const XLS_Type_LABELSST = 0x00fd
const XLS_Type_EXTSST = 0x00ff
const XLS_Type_EXTERNALBOOK = 0x01ae
const XLS_Type_DATAVALIDATIONS = 0x01b2
const XLS_Type_TXO = 0x01b6
const XLS_Type_HYPERLINK = 0x01b8
const XLS_Type_DATAVALIDATION = 0x01be
const XLS_Type_DIMENSION = 0x0200
const XLS_Type_BLANK = 0x0201
const XLS_Type_NUMBER = 0x0203
const XLS_Type_LABEL = 0x0204
const XLS_Type_BOOLERR = 0x0205
const XLS_Type_STRING = 0x0207
const XLS_Type_ROW = 0x0208
const XLS_Type_INDEX = 0x020b
const XLS_Type_ARRAY = 0x0221
const XLS_Type_DEFAULTROWHEIGHT = 0x0225
const XLS_Type_WINDOW2 = 0x023e
const XLS_Type_RK = 0x027e
const XLS_Type_STYLE = 0x0293
const XLS_Type_FORMAT = 0x041e
const XLS_Type_SHAREDFMLA = 0x04bc
const XLS_Type_BOF = 0x0809
const XLS_Type_SHEETPROTECTION = 0x0867
const XLS_Type_RANGEPROTECTION = 0x0868
const XLS_Type_SHEETLAYOUT = 0x0862
const XLS_Type_XFEXT = 0x087d
const XLS_Type_PAGELAYOUTVIEW = 0x088b
const XLS_Type_UNKNOWN = 0xffff
// Encryption type
const MS_BIFF_CRYPTO_NONE = 0
const MS_BIFF_CRYPTO_XOR = 1
const MS_BIFF_CRYPTO_RC4 = 2
// Size of stream blocks when using RC4 encryption
const REKEY_BLOCK = 0x400