diff options
author | xuri <xuri.me@gmail.com> | 2019-12-20 01:00:15 +0800 |
---|---|---|
committer | xuri <xuri.me@gmail.com> | 2019-12-20 01:00:15 +0800 |
commit | 4249dad8eaf8a6dee93fafeffe0bbbd794581ffe (patch) | |
tree | c9f32214bd8b5e60d7987b8fb7bac43e5fbae703 /calcchain.go | |
parent | a526e90404913f5d649d29a7aeee29f5ac9ff590 (diff) | |
parent | b1b3c0d15158abc71267da5893de020f047c3872 (diff) |
Resolve #539 Merge branch 'v2'
# Conflicts:
# rows.go
# sheet.go
Diffstat (limited to 'calcchain.go')
-rw-r--r-- | calcchain.go | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/calcchain.go b/calcchain.go index 7cc175c..a3d3820 100644 --- a/calcchain.go +++ b/calcchain.go @@ -9,16 +9,26 @@ package excelize -import "encoding/xml" +import ( + "bytes" + "encoding/xml" + "io" + "log" +) // calcChainReader provides a function to get the pointer to the structure // after deserialization of xl/calcChain.xml. func (f *File) calcChainReader() *xlsxCalcChain { + var err error + if f.CalcChain == nil { - var c xlsxCalcChain - _ = xml.Unmarshal(namespaceStrictToTransitional(f.readXML("xl/calcChain.xml")), &c) - f.CalcChain = &c + f.CalcChain = new(xlsxCalcChain) + if err = f.xmlNewDecoder(bytes.NewReader(namespaceStrictToTransitional(f.readXML("xl/calcChain.xml")))). + Decode(f.CalcChain); err != nil && err != io.EOF { + log.Printf("xml decode error: %s", err) + } } + return f.CalcChain } |