-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcell_core.go
62 lines (54 loc) · 1008 Bytes
/
cell_core.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
package xlripper
import "encoding/json"
type cellTypeInfo int
type cellCore interface {
cellReference() string
cellReferenceRunes() []rune
typeInfo() cellTypeInfo
value() *string
valueRunes() []rune
json.Marshaler
parseXML(runes []rune) error
toXML() ([]rune, error)
}
const (
ctUnknown cellTypeInfo = iota
ctNone
ctSharedString
ctInlineString
)
const (
ctStrUnkown = "unk"
ctStrNone = ""
ctStrSharedString = "s"
ctStrInlineString = "inlineStr"
)
func (c cellTypeInfo) String() string {
switch c {
case ctUnknown:
return ctStrUnkown
case ctNone:
return ctStrNone
case ctSharedString:
return ctStrSharedString
case ctInlineString:
return ctStrInlineString
default:
return ctStrUnkown
}
return ctStrUnkown
}
func (c *cellTypeInfo) Parse(s string) {
switch s {
case ctStrUnkown:
*c = ctUnknown
case ctStrNone:
*c = ctNone
case ctStrSharedString:
*c = ctSharedString
case ctStrInlineString:
*c = ctInlineString
default:
*c = ctUnknown
}
}