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 --- sheet.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'sheet.go') diff --git a/sheet.go b/sheet.go index 99ae1a2..17f6693 100644 --- a/sheet.go +++ b/sheet.go @@ -76,7 +76,7 @@ func (f *File) contentTypesReader() *xlsxTypes { f.ContentTypes = new(xlsxTypes) f.ContentTypes.Lock() defer f.ContentTypes.Unlock() - if err = f.xmlNewDecoder(bytes.NewReader(namespaceStrictToTransitional(f.readXML("[Content_Types].xml")))). + if err = f.xmlNewDecoder(bytes.NewReader(namespaceStrictToTransitional(f.readXML(defaultXMLPathContentTypes)))). Decode(f.ContentTypes); err != nil && err != io.EOF { log.Printf("xml decode error: %s", err) } @@ -89,7 +89,7 @@ func (f *File) contentTypesReader() *xlsxTypes { func (f *File) contentTypesWriter() { if f.ContentTypes != nil { output, _ := xml.Marshal(f.ContentTypes) - f.saveFileList("[Content_Types].xml", output) + f.saveFileList(defaultXMLPathContentTypes, output) } } @@ -304,7 +304,7 @@ func (f *File) relsWriter() { // setAppXML update docProps/app.xml file of XML. func (f *File) setAppXML() { - f.saveFileList("docProps/app.xml", []byte(templateDocpropsApp)) + f.saveFileList(dafaultXMLPathDocPropsApp, []byte(templateDocpropsApp)) } // replaceRelationshipsBytes; Some tools that read spreadsheet files have very -- cgit v1.2.1