This commit is contained in:
Liu Ming
2017-02-21 16:27:01 +08:00
parent 1127e94c69
commit f02a04cbdd
6 changed files with 68 additions and 32 deletions

View File

@@ -19,14 +19,20 @@ type WorkSheet struct {
bs *boundsheet
wb *WorkBook
Name string
Rows map[uint16]*Row
rows map[uint16]*Row
//NOTICE: this is the max row number of the sheet, so it should be count -1
MaxRow uint16
parsed bool
}
func (w *WorkSheet) Row(i int) *Row {
row := w.rows[uint16(i)]
row.wb = w.wb
return row
}
func (w *WorkSheet) parse(buf io.ReadSeeker) {
w.Rows = make(map[uint16]*Row)
w.rows = make(map[uint16]*Row)
b := new(bof)
var bof_pre *bof
for {
@@ -181,12 +187,12 @@ func (w *WorkSheet) addRange(rang Ranger, ch contentHandler) {
func (w *WorkSheet) addContent(row_num uint16, ch contentHandler) {
var row *Row
var ok bool
if row, ok = w.Rows[row_num]; !ok {
if row, ok = w.rows[row_num]; !ok {
info := new(rowInfo)
info.Index = row_num
row = w.addRow(info)
}
row.Cols[ch.FirstCol()] = ch
row.cols[ch.FirstCol()] = ch
}
func (w *WorkSheet) addRow(info *rowInfo) (row *Row) {
@@ -194,11 +200,11 @@ func (w *WorkSheet) addRow(info *rowInfo) (row *Row) {
w.MaxRow = info.Index
}
var ok bool
if row, ok = w.Rows[info.Index]; ok {
if row, ok = w.rows[info.Index]; ok {
row.info = info
} else {
row = &Row{info: info, Cols: make(map[uint16]contentHandler)}
w.Rows[info.Index] = row
row = &Row{info: info, cols: make(map[uint16]contentHandler)}
w.rows[info.Index] = row
}
return
}