diff options
author | xuri <xuri.me@gmail.com> | 2022-01-11 00:24:24 +0800 |
---|---|---|
committer | xuri <xuri.me@gmail.com> | 2022-01-11 00:31:11 +0800 |
commit | 891e5baac1a6ac67123fbc6a68f801720882b8ec (patch) | |
tree | caba6b482cf29539060ad70d95465cd626108ed2 /cell.go | |
parent | 2245fccca0beb25a1bf309a1c9cbd273512f125a (diff) |
ref #1096, reduce memory usage by about 50% for large data spreadsheet
Diffstat (limited to 'cell.go')
-rw-r--r-- | cell.go | 14 |
1 files changed, 12 insertions, 2 deletions
@@ -375,8 +375,18 @@ func (f *File) sharedStringsLoader() (err error) { if path, ok := f.tempFiles.Load(defaultXMLPathSharedStrings); ok { f.Pkg.Store(defaultXMLPathSharedStrings, f.readBytes(defaultXMLPathSharedStrings)) f.tempFiles.Delete(defaultXMLPathSharedStrings) - err = os.Remove(path.(string)) - f.SharedStrings, f.sharedStringItemMap = nil, nil + if err = os.Remove(path.(string)); err != nil { + return + } + f.SharedStrings = nil + } + if f.sharedStringTemp != nil { + if err := f.sharedStringTemp.Close(); err != nil { + return err + } + f.tempFiles.Delete(defaultTempFileSST) + f.sharedStringItem, err = nil, os.Remove(f.sharedStringTemp.Name()) + f.sharedStringTemp = nil } return } |