From 42ad4d6959b5a4502873cad3328c11936a36e788 Mon Sep 17 00:00:00 2001 From: xuri Date: Fri, 24 May 2024 22:05:07 +0800 Subject: [PATCH] This closes #1906, fix a v2.8.1 regression bug introduced by commit d9a0da7b48bac4175a23193a60f973c64d27835f - Fix incorrect cell value written if save multiple times - Update unit tests --- excelize_test.go | 24 ++++++++++++++++++++++++ sheet.go | 2 +- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/excelize_test.go b/excelize_test.go index b689602a98..6e2e6b0335 100644 --- a/excelize_test.go +++ b/excelize_test.go @@ -208,6 +208,30 @@ func TestSaveFile(t *testing.T) { assert.NoError(t, err) assert.NoError(t, f.Save()) assert.NoError(t, f.Close()) + + t.Run("for_save_multiple_times", func(t *testing.T) { + { + f, err := OpenFile(filepath.Join("test", "TestSaveFile.xlsx")) + assert.NoError(t, err) + assert.NoError(t, f.SetCellValue("Sheet1", "A20", 20)) + assert.NoError(t, f.Save()) + + assert.NoError(t, f.SetCellValue("Sheet1", "A21", 21)) + assert.NoError(t, f.Save()) + assert.NoError(t, f.Close()) + } + { + f, err := OpenFile(filepath.Join("test", "TestSaveFile.xlsx")) + assert.NoError(t, err) + val, err := f.GetCellValue("Sheet1", "A20") + assert.NoError(t, err) + assert.Equal(t, "20", val) + val, err = f.GetCellValue("Sheet1", "A21") + assert.NoError(t, err) + assert.Equal(t, "21", val) + assert.NoError(t, f.Close()) + } + }) } func TestSaveAsWrongPath(t *testing.T) { diff --git a/sheet.go b/sheet.go index f9f067a5cb..82c8f76cf0 100644 --- a/sheet.go +++ b/sheet.go @@ -167,7 +167,7 @@ func (f *File) workSheetWriter() { _, ok := f.checked.Load(p.(string)) if ok { f.Sheet.Delete(p.(string)) - f.checked.Store(p.(string), false) + f.checked.Delete(p.(string)) } buffer.Reset() }