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 --- rows_test.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'rows_test.go') diff --git a/rows_test.go b/rows_test.go index 0c154a4..63321ce 100644 --- a/rows_test.go +++ b/rows_test.go @@ -56,11 +56,18 @@ func TestRows(t *testing.T) { assert.NoError(t, err) // Test reload the file to memory from system temporary directory. - f, err = OpenFile(filepath.Join("test", "Book1.xlsx"), Options{WorksheetUnzipMemLimit: 1024}) + f, err = OpenFile(filepath.Join("test", "Book1.xlsx"), Options{UnzipXMLSizeLimit: 128}) assert.NoError(t, err) value, err := f.GetCellValue("Sheet1", "A19") assert.NoError(t, err) assert.Equal(t, "Total:", value) + // Test load shared string table to memory + err = f.SetCellValue("Sheet1", "A19", "A19") + assert.NoError(t, err) + value, err = f.GetCellValue("Sheet1", "A19") + assert.NoError(t, err) + assert.Equal(t, "A19", value) + assert.NoError(t, f.SaveAs(filepath.Join("test", "TestSetRow.xlsx"))) assert.NoError(t, f.Close()) } @@ -200,7 +207,7 @@ func TestColumns(t *testing.T) { func TestSharedStringsReader(t *testing.T) { f := NewFile() - f.Pkg.Store("xl/sharedStrings.xml", MacintoshCyrillicCharset) + f.Pkg.Store(dafaultXMLPathSharedStrings, MacintoshCyrillicCharset) f.sharedStringsReader() si := xlsxSI{} assert.EqualValues(t, "", si.String()) -- cgit v1.2.1