summaryrefslogtreecommitdiff
path: root/col.go
diff options
context:
space:
mode:
Diffstat (limited to 'col.go')
-rw-r--r--col.go55
1 files changed, 35 insertions, 20 deletions
diff --git a/col.go b/col.go
index 0baa2e4..472106f 100644
--- a/col.go
+++ b/col.go
@@ -48,8 +48,8 @@ type Cols struct {
// return
// }
// for _, col := range cols {
-// for _, colCell := range col {
-// fmt.Println(colCell, "\t")
+// for _, rowCell := range col {
+// fmt.Print(rowCell, "\t")
// }
// fmt.Println()
// }
@@ -99,24 +99,34 @@ func (cols *Cols) Rows() ([]string, error) {
switch startElement := token.(type) {
case xml.StartElement:
inElement = startElement.Name.Local
+ if inElement == "row" {
+ cellCol = 0
+ cellRow++
+ for _, attr := range startElement.Attr {
+ if attr.Name.Local == "r" {
+ cellRow, _ = strconv.Atoi(attr.Value)
+ }
+ }
+ }
if inElement == "c" {
+ cellCol++
for _, attr := range startElement.Attr {
if attr.Name.Local == "r" {
if cellCol, cellRow, err = CellNameToCoordinates(attr.Value); err != nil {
return rows, err
}
- blank := cellRow - len(rows)
- for i := 1; i < blank; i++ {
- rows = append(rows, "")
- }
- if cellCol == cols.curCol {
- colCell := xlsxC{}
- _ = decoder.DecodeElement(&colCell, &startElement)
- val, _ := colCell.getValueFrom(cols.f, d)
- rows = append(rows, val)
- }
}
}
+ blank := cellRow - len(rows)
+ for i := 1; i < blank; i++ {
+ rows = append(rows, "")
+ }
+ if cellCol == cols.curCol {
+ colCell := xlsxC{}
+ _ = decoder.DecodeElement(&colCell, &startElement)
+ val, _ := colCell.getValueFrom(cols.f, d)
+ rows = append(rows, val)
+ }
}
}
}
@@ -152,10 +162,10 @@ func (f *File) Cols(sheet string) (*Cols, error) {
f.saveFileList(name, replaceRelationshipsNameSpaceBytes(output))
}
var (
- inElement string
- cols Cols
- cellCol int
- err error
+ inElement string
+ cols Cols
+ cellCol, curRow, row int
+ err error
)
cols.sheetXML = f.readXML(name)
decoder := f.xmlNewDecoder(bytes.NewReader(cols.sheetXML))
@@ -168,25 +178,30 @@ func (f *File) Cols(sheet string) (*Cols, error) {
case xml.StartElement:
inElement = startElement.Name.Local
if inElement == "row" {
+ row++
for _, attr := range startElement.Attr {
if attr.Name.Local == "r" {
- if cols.totalRow, err = strconv.Atoi(attr.Value); err != nil {
+ if curRow, err = strconv.Atoi(attr.Value); err != nil {
return &cols, err
}
+ row = curRow
}
}
+ cols.totalRow = row
+ cellCol = 0
}
if inElement == "c" {
+ cellCol++
for _, attr := range startElement.Attr {
if attr.Name.Local == "r" {
if cellCol, _, err = CellNameToCoordinates(attr.Value); err != nil {
return &cols, err
}
- if cellCol > cols.totalCol {
- cols.totalCol = cellCol
- }
}
}
+ if cellCol > cols.totalCol {
+ cols.totalCol = cellCol
+ }
}
}
}