summaryrefslogtreecommitdiff
path: root/calc_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'calc_test.go')
-rw-r--r--calc_test.go26
1 files changed, 26 insertions, 0 deletions
diff --git a/calc_test.go b/calc_test.go
index 283b9c2..4298aa7 100644
--- a/calc_test.go
+++ b/calc_test.go
@@ -790,4 +790,30 @@ func TestCalcCellValue(t *testing.T) {
_, err = f.CalcCellValue("Sheet1", "A1")
assert.EqualError(t, err, "not support UNSUPPORT function")
assert.NoError(t, f.SaveAs(filepath.Join("test", "TestCalcCellValue.xlsx")))
+
+}
+
+func TestCalcCellValueWithDefinedName(t *testing.T) {
+ cellData := [][]interface{}{
+ {"A1 value", "B1 value", nil},
+ }
+ prepareData := func() *File {
+ f := NewFile()
+ for r, row := range cellData {
+ for c, value := range row {
+ cell, _ := CoordinatesToCellName(c+1, r+1)
+ assert.NoError(t, f.SetCellValue("Sheet1", cell, value))
+ }
+ }
+ assert.NoError(t, f.SetDefinedName(&DefinedName{Name: "defined_name1", RefersTo: "Sheet1!A1", Scope: "Workbook"}))
+ assert.NoError(t, f.SetDefinedName(&DefinedName{Name: "defined_name1", RefersTo: "Sheet1!B1", Scope: "Sheet1"}))
+
+ return f
+ }
+ f := prepareData()
+ assert.NoError(t, f.SetCellFormula("Sheet1", "C1", "=defined_name1"))
+ result, err := f.CalcCellValue("Sheet1", "C1")
+ assert.NoError(t, err)
+ // DefinedName with scope WorkSheet takes precedence over DefinedName with scope Workbook, so we should get B1 value
+ assert.Equal(t, "B1 value", result, "=defined_name1")
}