From a335be7e4e6824e65f3d8a34b7b45ffa8d78fe4b Mon Sep 17 00:00:00 2001
From: xuri <xuri.me@gmail.com>
Date: Tue, 18 Jun 2019 23:07:44 +0800
Subject: New functions: SetDefinedName and GetDefinedName added

---
 sheet_test.go | 45 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)

(limited to 'sheet_test.go')

diff --git a/sheet_test.go b/sheet_test.go
index beee10b..a7fd9e9 100644
--- a/sheet_test.go
+++ b/sheet_test.go
@@ -108,6 +108,29 @@ func TestPageLayoutOption(t *testing.T) {
 	}
 }
 
+func TestSearchSheet(t *testing.T) {
+	f, err := excelize.OpenFile(filepath.Join("test", "SharedStrings.xlsx"))
+	if !assert.NoError(t, err) {
+		t.FailNow()
+	}
+	// Test search in a not exists worksheet.
+	_, err = f.SearchSheet("Sheet4", "")
+	assert.EqualError(t, err, "sheet Sheet4 is not exist")
+	var expected []string
+	// Test search a not exists value.
+	result, err := f.SearchSheet("Sheet1", "X")
+	assert.NoError(t, err)
+	assert.EqualValues(t, expected, result)
+	result, err = f.SearchSheet("Sheet1", "A")
+	assert.NoError(t, err)
+	assert.EqualValues(t, []string{"A1"}, result)
+	// Test search the coordinates where the numerical value in the range of
+	// "0-9" of Sheet1 is described by regular expression:
+	result, err = f.SearchSheet("Sheet1", "[0-9]", true)
+	assert.NoError(t, err)
+	assert.EqualValues(t, expected, result)
+}
+
 func TestSetPageLayout(t *testing.T) {
 	f := excelize.NewFile()
 	// Test set page layout on not exists worksheet.
@@ -142,3 +165,25 @@ func TestSetHeaderFooter(t *testing.T) {
 	}))
 	assert.NoError(t, f.SaveAs(filepath.Join("test", "TestSetHeaderFooter.xlsx")))
 }
+
+func TestDefinedName(t *testing.T) {
+	f := excelize.NewFile()
+	assert.NoError(t, f.SetDefinedName(&excelize.DefinedName{
+		Name:     "Amount",
+		RefersTo: "Sheet1!$A$2:$D$5",
+		Comment:  "defined name comment",
+		Scope:    "Sheet1",
+	}))
+	assert.NoError(t, f.SetDefinedName(&excelize.DefinedName{
+		Name:     "Amount",
+		RefersTo: "Sheet1!$A$2:$D$5",
+		Comment:  "defined name comment",
+	}))
+	assert.EqualError(t, f.SetDefinedName(&excelize.DefinedName{
+		Name:     "Amount",
+		RefersTo: "Sheet1!$A$2:$D$5",
+		Comment:  "defined name comment",
+	}), "the same name already exists on scope")
+	assert.Exactly(t, "Sheet1!$A$2:$D$5", f.GetDefinedName()[1].RefersTo)
+	assert.NoError(t, f.SaveAs(filepath.Join("test", "TestDefinedName.xlsx")))
+}
-- 
cgit v1.2.1