summaryrefslogtreecommitdiff
path: root/rows.go
diff options
context:
space:
mode:
Diffstat (limited to 'rows.go')
-rw-r--r--rows.go16
1 files changed, 10 insertions, 6 deletions
diff --git a/rows.go b/rows.go
index 0dac853..227a7d5 100644
--- a/rows.go
+++ b/rows.go
@@ -30,7 +30,7 @@ func (f *File) GetRows(sheet string) [][]string {
f.saveFileList(name, replaceWorkSheetsRelationshipsNameSpace(string(output)))
}
decoder := xml.NewDecoder(strings.NewReader(f.readXML(name)))
- d, _ := readXMLSST(f)
+ d := f.sharedStringsReader()
var inElement string
var r xlsxRow
var row []string
@@ -146,11 +146,15 @@ func (f *File) GetRowHeight(sheet string, row int) float64 {
return defaultRowHeightPixels
}
-// readXMLSST read xmlSST simple function.
-func readXMLSST(f *File) (*xlsxSST, error) {
- shardStrings := xlsxSST{}
- err := xml.Unmarshal([]byte(f.readXML("xl/sharedStrings.xml")), &shardStrings)
- return &shardStrings, err
+// sharedStringsReader provides function to get the pointer to the structure
+// after deserialization of xl/sharedStrings.xml.
+func (f *File) sharedStringsReader() *xlsxSST {
+ if f.SharedStrings == nil {
+ var sharedStrings xlsxSST
+ xml.Unmarshal([]byte(f.readXML("xl/sharedStrings.xml")), &sharedStrings)
+ f.SharedStrings = &sharedStrings
+ }
+ return f.SharedStrings
}
// getValueFrom return a value from a column/row cell, this function is inteded