summaryrefslogtreecommitdiff
path: root/cell.go
diff options
context:
space:
mode:
authorxuri <xuri.me@gmail.com>2022-01-11 00:24:24 +0800
committerxuri <xuri.me@gmail.com>2022-01-11 00:31:11 +0800
commit891e5baac1a6ac67123fbc6a68f801720882b8ec (patch)
treecaba6b482cf29539060ad70d95465cd626108ed2 /cell.go
parent2245fccca0beb25a1bf309a1c9cbd273512f125a (diff)
ref #1096, reduce memory usage by about 50% for large data spreadsheet
Diffstat (limited to 'cell.go')
-rw-r--r--cell.go14
1 files changed, 12 insertions, 2 deletions
diff --git a/cell.go b/cell.go
index 7a26e78..ff9a131 100644
--- a/cell.go
+++ b/cell.go
@@ -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
}