From bd5dd17673f767b9f4643423c77eec486f2ad53f Mon Sep 17 00:00:00 2001 From: xuri Date: Sat, 12 Nov 2022 00:02:11 +0800 Subject: This is a breaking change, remove partial internal error log print, throw XML deserialize error - Add error return value for the `GetComments`, `GetDefaultFont` and `SetDefaultFont` functions - Update unit tests --- calcchain.go | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'calcchain.go') diff --git a/calcchain.go b/calcchain.go index 80928c2..3aa5d81 100644 --- a/calcchain.go +++ b/calcchain.go @@ -15,23 +15,19 @@ 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 - +func (f *File) calcChainReader() (*xlsxCalcChain, error) { if f.CalcChain == nil { f.CalcChain = new(xlsxCalcChain) - if err = f.xmlNewDecoder(bytes.NewReader(namespaceStrictToTransitional(f.readXML(defaultXMLPathCalcChain)))). + if err := f.xmlNewDecoder(bytes.NewReader(namespaceStrictToTransitional(f.readXML(defaultXMLPathCalcChain)))). Decode(f.CalcChain); err != nil && err != io.EOF { - log.Printf("xml decode error: %s", err) + return f.CalcChain, err } } - - return f.CalcChain + return f.CalcChain, nil } // calcChainWriter provides a function to save xl/calcChain.xml after @@ -45,8 +41,11 @@ func (f *File) calcChainWriter() { // deleteCalcChain provides a function to remove cell reference on the // calculation chain. -func (f *File) deleteCalcChain(index int, cell string) { - calc := f.calcChainReader() +func (f *File) deleteCalcChain(index int, cell string) error { + calc, err := f.calcChainReader() + if err != nil { + return err + } if calc != nil { calc.C = xlsxCalcChainCollection(calc.C).Filter(func(c xlsxCalcChainC) bool { return !((c.I == index && c.R == cell) || (c.I == index && cell == "") || (c.I == 0 && c.R == cell)) @@ -64,6 +63,7 @@ func (f *File) deleteCalcChain(index int, cell string) { } } } + return err } type xlsxCalcChainCollection []xlsxCalcChainC -- cgit v1.2.1