From 89b85934f60ba0012f3de6da03eb12959e4b4b72 Mon Sep 17 00:00:00 2001 From: xuri Date: Mon, 27 Dec 2021 23:34:14 +0800 Subject: This closes #1096, memory usage optimization and another 4 changes - Unzip shared string table to system temporary file when large inner XML, reduce memory usage about 70% - Remove unnecessary exported variable `XMLHeader`, we can using `encoding/xml` package's `xml.Header` instead of it - Using constant instead of inline text for default XML path - Rename exported option field `WorksheetUnzipMemLimit` to `UnzipXMLSizeLimit` - Unit test and documentation updated --- calcchain.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'calcchain.go') diff --git a/calcchain.go b/calcchain.go index 671d144..8f5e277 100644 --- a/calcchain.go +++ b/calcchain.go @@ -25,7 +25,7 @@ func (f *File) calcChainReader() *xlsxCalcChain { if f.CalcChain == nil { f.CalcChain = new(xlsxCalcChain) - if err = f.xmlNewDecoder(bytes.NewReader(namespaceStrictToTransitional(f.readXML("xl/calcChain.xml")))). + if err = f.xmlNewDecoder(bytes.NewReader(namespaceStrictToTransitional(f.readXML(dafaultXMLPathCalcChain)))). Decode(f.CalcChain); err != nil && err != io.EOF { log.Printf("xml decode error: %s", err) } @@ -39,7 +39,7 @@ func (f *File) calcChainReader() *xlsxCalcChain { func (f *File) calcChainWriter() { if f.CalcChain != nil && f.CalcChain.C != nil { output, _ := xml.Marshal(f.CalcChain) - f.saveFileList("xl/calcChain.xml", output) + f.saveFileList(dafaultXMLPathCalcChain, output) } } @@ -54,7 +54,7 @@ func (f *File) deleteCalcChain(index int, axis string) { } if len(calc.C) == 0 { f.CalcChain = nil - f.Pkg.Delete("xl/calcChain.xml") + f.Pkg.Delete(dafaultXMLPathCalcChain) content := f.contentTypesReader() content.Lock() defer content.Unlock() -- cgit v1.2.1