MCPcopy
hub / github.com/davyxu/tabtoy / parseTable

Method parseTable

v2/sheet_type.go:52–131  ·  view source on GitHub ↗
(root *typeModelRoot)

Source from the content-addressed store, hash-verified

50}
51
52func (self *TypeSheet) parseTable(root *typeModelRoot) bool {
53
54 var readingLine bool = true
55
56 root.pragma = self.GetCellData(TypeSheetRow_Pragma, 0)
57
58 maxCol := self.detectMaxTypeCol()
59
60 var meetEmptyLine bool
61
62 var warningAfterEmptyLineDataOnce bool
63
64 // 读行
65 for row := TypeSheetRow_DataBegin; readingLine; row++ {
66
67 tm := newTypeModel()
68 tm.row = row
69
70 // 整行都是空的
71 if self.IsFullRowEmpty(row, maxCol) {
72
73 // 再次碰空行, 表示确实是空的
74 if meetEmptyLine {
75 break
76
77 } else {
78 meetEmptyLine = true
79 }
80
81 continue
82
83 } else {
84
85 //已经碰过空行, 这里又碰到数据, 说明有人为隔出的空行, 做warning提醒, 防止数据没导出
86 if meetEmptyLine && !warningAfterEmptyLineDataOnce {
87 log.Errorf("%s %s|%s(%s)", i18n.String(i18n.TypeSheet_RowDataSplitedByEmptyLine), self.file.FileName, self.Name, util.R1C1ToA1(row, 1))
88
89 warningAfterEmptyLineDataOnce = true
90 }
91
92 }
93
94 // 读列
95 for col := 0; col < maxCol; col++ {
96
97 // 头的类型
98 typeDeclare := self.GetCellData(TypeSheetRow_FieldDesc, col)
99
100 if _, ok := typeHeader[typeDeclare]; !ok {
101 self.Row = TypeSheetRow_FieldDesc
102 self.Column = col
103 log.Errorf("%s, '%s'", i18n.String(i18n.TypeSheet_UnexpectedTypeHeader), typeDeclare)
104 return false
105 }
106
107 // 值
108 typeValue := self.GetCellData(row, col)
109

Callers 1

ParseMethod · 0.95

Calls 6

detectMaxTypeColMethod · 0.95
StringFunction · 0.92
R1C1ToA1Function · 0.92
newTypeModelFunction · 0.85
GetCellDataMethod · 0.80
IsFullRowEmptyMethod · 0.80

Tested by

no test coverage detected