From b1f632d4084130628f10906ff6a7bb55022e4c08 Mon Sep 17 00:00:00 2001 From: xuri Date: Tue, 30 Apr 2019 18:39:27 +0800 Subject: Resolve #393, upgrade Go module to v2 --- sheet_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'sheet_test.go') diff --git a/sheet_test.go b/sheet_test.go index 7db982a..f0a1963 100644 --- a/sheet_test.go +++ b/sheet_test.go @@ -4,7 +4,7 @@ import ( "fmt" "testing" - "github.com/360EntSecGroup-Skylar/excelize" + "github.com/360EntSecGroup-Skylar/excelize/v2" "github.com/mohae/deepcopy" "github.com/stretchr/testify/assert" ) -- cgit v1.2.1 From 69b38ddcd60f7cf4c158c706ddbbeb89a8ff2108 Mon Sep 17 00:00:00 2001 From: xuri Date: Sun, 5 May 2019 16:25:57 +0800 Subject: Resolve #394, init set header and footer support --- sheet_test.go | 57 +++++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 41 insertions(+), 16 deletions(-) (limited to 'sheet_test.go') diff --git a/sheet_test.go b/sheet_test.go index f0a1963..beee10b 100644 --- a/sheet_test.go +++ b/sheet_test.go @@ -2,6 +2,8 @@ package excelize_test import ( "fmt" + "path/filepath" + "strings" "testing" "github.com/360EntSecGroup-Skylar/excelize/v2" @@ -10,15 +12,15 @@ import ( ) func ExampleFile_SetPageLayout() { - xl := excelize.NewFile() + f := excelize.NewFile() - if err := xl.SetPageLayout( + if err := f.SetPageLayout( "Sheet1", excelize.PageLayoutOrientation(excelize.OrientationLandscape), ); err != nil { panic(err) } - if err := xl.SetPageLayout( + if err := f.SetPageLayout( "Sheet1", excelize.PageLayoutPaperSize(10), ); err != nil { @@ -28,15 +30,15 @@ func ExampleFile_SetPageLayout() { } func ExampleFile_GetPageLayout() { - xl := excelize.NewFile() + f := excelize.NewFile() var ( orientation excelize.PageLayoutOrientation paperSize excelize.PageLayoutPaperSize ) - if err := xl.GetPageLayout("Sheet1", &orientation); err != nil { + if err := f.GetPageLayout("Sheet1", &orientation); err != nil { panic(err) } - if err := xl.GetPageLayout("Sheet1", &paperSize); err != nil { + if err := f.GetPageLayout("Sheet1", &paperSize); err != nil { panic(err) } fmt.Println("Defaults:") @@ -69,26 +71,26 @@ func TestPageLayoutOption(t *testing.T) { val1 := deepcopy.Copy(def).(excelize.PageLayoutOptionPtr) val2 := deepcopy.Copy(def).(excelize.PageLayoutOptionPtr) - xl := excelize.NewFile() + f := excelize.NewFile() // Get the default value - assert.NoError(t, xl.GetPageLayout(sheet, def), opt) + assert.NoError(t, f.GetPageLayout(sheet, def), opt) // Get again and check - assert.NoError(t, xl.GetPageLayout(sheet, val1), opt) + assert.NoError(t, f.GetPageLayout(sheet, val1), opt) if !assert.Equal(t, val1, def, opt) { t.FailNow() } // Set the same value - assert.NoError(t, xl.SetPageLayout(sheet, val1), opt) + assert.NoError(t, f.SetPageLayout(sheet, val1), opt) // Get again and check - assert.NoError(t, xl.GetPageLayout(sheet, val1), opt) + assert.NoError(t, f.GetPageLayout(sheet, val1), opt) if !assert.Equal(t, val1, def, "%T: value should not have changed", opt) { t.FailNow() } // Set a different value - assert.NoError(t, xl.SetPageLayout(sheet, test.nonDefault), opt) - assert.NoError(t, xl.GetPageLayout(sheet, val1), opt) + assert.NoError(t, f.SetPageLayout(sheet, test.nonDefault), opt) + assert.NoError(t, f.GetPageLayout(sheet, val1), opt) // Get again and compare - assert.NoError(t, xl.GetPageLayout(sheet, val2), opt) + assert.NoError(t, f.GetPageLayout(sheet, val2), opt) if !assert.Equal(t, val1, val2, "%T: value should not have changed", opt) { t.FailNow() } @@ -97,8 +99,8 @@ func TestPageLayoutOption(t *testing.T) { t.FailNow() } // Restore the default value - assert.NoError(t, xl.SetPageLayout(sheet, def), opt) - assert.NoError(t, xl.GetPageLayout(sheet, val1), opt) + assert.NoError(t, f.SetPageLayout(sheet, def), opt) + assert.NoError(t, f.GetPageLayout(sheet, val1), opt) if !assert.Equal(t, def, val1) { t.FailNow() } @@ -117,3 +119,26 @@ func TestGetPageLayout(t *testing.T) { // Test get page layout on not exists worksheet. assert.EqualError(t, f.GetPageLayout("SheetN"), "sheet SheetN is not exist") } + +func TestSetHeaderFooter(t *testing.T) { + f := excelize.NewFile() + f.SetCellStr("Sheet1", "A1", "Test SetHeaderFooter") + // Test set header and footer on not exists worksheet. + assert.EqualError(t, f.SetHeaderFooter("SheetN", nil), "sheet SheetN is not exist") + // Test set header and footer with illegal setting. + assert.EqualError(t, f.SetHeaderFooter("Sheet1", &excelize.FormatHeaderFooter{ + OddHeader: strings.Repeat("c", 256), + }), "field OddHeader must be less than 255 characters") + + assert.NoError(t, f.SetHeaderFooter("Sheet1", nil)) + assert.NoError(t, f.SetHeaderFooter("Sheet1", &excelize.FormatHeaderFooter{ + DifferentFirst: true, + DifferentOddEven: true, + OddHeader: "&R&P", + OddFooter: "&C&F", + EvenHeader: "&L&P", + EvenFooter: "&L&D&R&T", + FirstHeader: `&CCenter &"-,Bold"Bold&"-,Regular"HeaderU+000A&D`, + })) + assert.NoError(t, f.SaveAs(filepath.Join("test", "TestSetHeaderFooter.xlsx"))) +} -- cgit v1.2.1 From a335be7e4e6824e65f3d8a34b7b45ffa8d78fe4b Mon Sep 17 00:00:00 2001 From: xuri 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 From e780aa27c8037fadbc4a7c08466b52d0f4ac268a Mon Sep 17 00:00:00 2001 From: xuri Date: Thu, 4 Jul 2019 16:15:20 +0800 Subject: Add unit test for GroupSheets and UngroupSheets --- sheet_test.go | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'sheet_test.go') diff --git a/sheet_test.go b/sheet_test.go index a7fd9e9..3a7f579 100644 --- a/sheet_test.go +++ b/sheet_test.go @@ -187,3 +187,24 @@ func TestDefinedName(t *testing.T) { assert.Exactly(t, "Sheet1!$A$2:$D$5", f.GetDefinedName()[1].RefersTo) assert.NoError(t, f.SaveAs(filepath.Join("test", "TestDefinedName.xlsx"))) } + +func TestGroupSheets(t *testing.T) { + f := excelize.NewFile() + sheets := []string{"Sheet2", "Sheet3"} + for _, sheet := range sheets { + f.NewSheet(sheet) + } + assert.EqualError(t, f.GroupSheets([]string{"Sheet1", "SheetN"}), "sheet SheetN is not exist") + assert.EqualError(t, f.GroupSheets([]string{"Sheet2", "Sheet3"}), "group worksheet must contain an active worksheet") + assert.NoError(t, f.GroupSheets([]string{"Sheet1", "Sheet2"})) + assert.NoError(t, f.SaveAs(filepath.Join("test", "TestGroupSheets.xlsx"))) +} + +func TestUngroupSheets(t *testing.T) { + f := excelize.NewFile() + sheets := []string{"Sheet2", "Sheet3", "Sheet4", "Sheet5"} + for _, sheet := range sheets { + f.NewSheet(sheet) + } + assert.NoError(t, f.UngroupSheets()) +} -- cgit v1.2.1 From 14d490c83d9744e635c88bca9018994dfe8981af Mon Sep 17 00:00:00 2001 From: xuri Date: Sun, 7 Jul 2019 00:17:15 +0800 Subject: Add unit test for SetPageLayout --- sheet_test.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'sheet_test.go') diff --git a/sheet_test.go b/sheet_test.go index 3a7f579..ef795ad 100644 --- a/sheet_test.go +++ b/sheet_test.go @@ -23,6 +23,8 @@ func ExampleFile_SetPageLayout() { if err := f.SetPageLayout( "Sheet1", excelize.PageLayoutPaperSize(10), + excelize.FitToHeight(2), + excelize.FitToWidth(2), ); err != nil { panic(err) } @@ -34,6 +36,8 @@ func ExampleFile_GetPageLayout() { var ( orientation excelize.PageLayoutOrientation paperSize excelize.PageLayoutPaperSize + fitToHeight excelize.FitToHeight + fitToWidth excelize.FitToWidth ) if err := f.GetPageLayout("Sheet1", &orientation); err != nil { panic(err) @@ -41,13 +45,24 @@ func ExampleFile_GetPageLayout() { if err := f.GetPageLayout("Sheet1", &paperSize); err != nil { panic(err) } + if err := f.GetPageLayout("Sheet1", &fitToHeight); err != nil { + panic(err) + } + + if err := f.GetPageLayout("Sheet1", &fitToWidth); err != nil { + panic(err) + } fmt.Println("Defaults:") fmt.Printf("- orientation: %q\n", orientation) fmt.Printf("- paper size: %d\n", paperSize) + fmt.Printf("- fit to height: %d\n", fitToHeight) + fmt.Printf("- fit to width: %d\n", fitToWidth) // Output: // Defaults: // - orientation: "portrait" // - paper size: 1 + // - fit to height: 1 + // - fit to width: 1 } func TestPageLayoutOption(t *testing.T) { @@ -59,6 +74,8 @@ func TestPageLayoutOption(t *testing.T) { }{ {new(excelize.PageLayoutOrientation), excelize.PageLayoutOrientation(excelize.OrientationLandscape)}, {new(excelize.PageLayoutPaperSize), excelize.PageLayoutPaperSize(10)}, + {new(excelize.FitToHeight), excelize.FitToHeight(2)}, + {new(excelize.FitToWidth), excelize.FitToWidth(2)}, } for i, test := range testData { -- cgit v1.2.1 From faaaa52cb862499454a7f893b92e8430d00172a5 Mon Sep 17 00:00:00 2001 From: Harris Date: Wed, 7 Aug 2019 08:53:37 -0500 Subject: Get sheet names based on index SheetID only seems to indicate the file name for the sheet. Check the sheets list based on index instead. Reordering sheets in Excel changes the order they appear in that list. Fixes #457 --- sheet_test.go | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'sheet_test.go') diff --git a/sheet_test.go b/sheet_test.go index ef795ad..3baa084 100644 --- a/sheet_test.go +++ b/sheet_test.go @@ -225,3 +225,24 @@ func TestUngroupSheets(t *testing.T) { } assert.NoError(t, f.UngroupSheets()) } + +func TestGetSheetName(t *testing.T) { + f, _ := excelize.OpenFile(filepath.Join("test", "Book1.xlsx")) + assert.Equal(t, "Sheet1", f.GetSheetName(1)) + assert.Equal(t, "Sheet2", f.GetSheetName(2)) + assert.Equal(t, "", f.GetSheetName(0)) + assert.Equal(t, "", f.GetSheetName(3)) +} + +func TestGetSheetMap(t *testing.T) { + expectedMap := map[int]string{ + 1: "Sheet1", + 2: "Sheet2", + } + f, _ := excelize.OpenFile(filepath.Join("test", "Book1.xlsx")) + sheetMap := f.GetSheetMap() + for idx, name := range sheetMap { + assert.Equal(t, expectedMap[idx], name) + } + assert.Equal(t, len(sheetMap), 2) +} -- cgit v1.2.1 From 0acb3ef9685e80d51dfda5ab9a9db870af7e1614 Mon Sep 17 00:00:00 2001 From: xuri Date: Mon, 2 Sep 2019 21:52:55 +0800 Subject: Testing files updated --- sheet_test.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'sheet_test.go') diff --git a/sheet_test.go b/sheet_test.go index 3baa084..145e302 100644 --- a/sheet_test.go +++ b/sheet_test.go @@ -6,7 +6,8 @@ import ( "strings" "testing" - "github.com/360EntSecGroup-Skylar/excelize/v2" + "github.com/360EntSecGroup-Skylar/excelize" + "github.com/mohae/deepcopy" "github.com/stretchr/testify/assert" ) -- cgit v1.2.1 From 3c327413d963f6ffa934a72beb483d1fedd25660 Mon Sep 17 00:00:00 2001 From: Ben Wells Date: Fri, 13 Sep 2019 11:38:44 +0100 Subject: Fix dependency on github.com/360EntSecGroup-Skylar/excelize v1 --- sheet_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'sheet_test.go') diff --git a/sheet_test.go b/sheet_test.go index 145e302..5179793 100644 --- a/sheet_test.go +++ b/sheet_test.go @@ -6,7 +6,7 @@ import ( "strings" "testing" - "github.com/360EntSecGroup-Skylar/excelize" + "github.com/360EntSecGroup-Skylar/excelize/v2" "github.com/mohae/deepcopy" "github.com/stretchr/testify/assert" -- cgit v1.2.1 From 2d21b5b50f30ae9868b2f8b1f7299ceefcf87fd2 Mon Sep 17 00:00:00 2001 From: streboryaj Date: Tue, 15 Oct 2019 09:26:08 -0500 Subject: Added accessors for Getting/Setting Page Margins (#497) * Added accessors for Getting/Setting Page Margins * Added test cases --- sheet_test.go | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) (limited to 'sheet_test.go') diff --git a/sheet_test.go b/sheet_test.go index 5179793..6bfa7dc 100644 --- a/sheet_test.go +++ b/sheet_test.go @@ -247,3 +247,65 @@ func TestGetSheetMap(t *testing.T) { } assert.Equal(t, len(sheetMap), 2) } + +func TestPageMarginsOption(t *testing.T) { + const sheet = "Sheet1" + + testData := []struct { + container excelize.PageMarginsOptionsPtr + nonDefault excelize.PageMarginsOptions + }{ + {new(excelize.PageMarginTop), excelize.PageMarginTop(1.0)}, + {new(excelize.PageMarginBottom), excelize.PageMarginBottom(1.0)}, + {new(excelize.PageMarginLeft), excelize.PageMarginLeft(1.0)}, + {new(excelize.PageMarginRight), excelize.PageMarginRight(1.0)}, + {new(excelize.PageMarginHeader), excelize.PageMarginHeader(1.0)}, + {new(excelize.PageMarginFooter), excelize.PageMarginFooter(1.0)}, + } + + for i, test := range testData { + t.Run(fmt.Sprintf("TestData%d", i), func(t *testing.T) { + + opt := test.nonDefault + t.Logf("option %T", opt) + + def := deepcopy.Copy(test.container).(excelize.PageMarginsOptionsPtr) + val1 := deepcopy.Copy(def).(excelize.PageMarginsOptionsPtr) + val2 := deepcopy.Copy(def).(excelize.PageMarginsOptionsPtr) + + f := excelize.NewFile() + // Get the default value + assert.NoError(t, f.GetPageMargins(sheet, def), opt) + // Get again and check + assert.NoError(t, f.GetPageMargins(sheet, val1), opt) + if !assert.Equal(t, val1, def, opt) { + t.FailNow() + } + // Set the same value + assert.NoError(t, f.SetPageMargins(sheet, val1), opt) + // Get again and check + assert.NoError(t, f.GetPageMargins(sheet, val1), opt) + if !assert.Equal(t, val1, def, "%T: value should not have changed", opt) { + t.FailNow() + } + // Set a different value + assert.NoError(t, f.SetPageMargins(sheet, test.nonDefault), opt) + assert.NoError(t, f.GetPageMargins(sheet, val1), opt) + // Get again and compare + assert.NoError(t, f.GetPageMargins(sheet, val2), opt) + if !assert.Equal(t, val1, val2, "%T: value should not have changed", opt) { + t.FailNow() + } + // Value should not be the same as the default + if !assert.NotEqual(t, def, val1, "%T: value should have changed from default", opt) { + t.FailNow() + } + // Restore the default value + assert.NoError(t, f.SetPageMargins(sheet, def), opt) + assert.NoError(t, f.GetPageMargins(sheet, val1), opt) + if !assert.Equal(t, def, val1) { + t.FailNow() + } + }) + } +} -- cgit v1.2.1 From 2e791fa433def282ee2e7a5049a46fc4a76796cf Mon Sep 17 00:00:00 2001 From: xuri Date: Wed, 16 Oct 2019 01:03:29 +0800 Subject: Optimize code of Getting/Setting Page Margins --- sheet_test.go | 62 ----------------------------------------------------------- 1 file changed, 62 deletions(-) (limited to 'sheet_test.go') diff --git a/sheet_test.go b/sheet_test.go index 6bfa7dc..5179793 100644 --- a/sheet_test.go +++ b/sheet_test.go @@ -247,65 +247,3 @@ func TestGetSheetMap(t *testing.T) { } assert.Equal(t, len(sheetMap), 2) } - -func TestPageMarginsOption(t *testing.T) { - const sheet = "Sheet1" - - testData := []struct { - container excelize.PageMarginsOptionsPtr - nonDefault excelize.PageMarginsOptions - }{ - {new(excelize.PageMarginTop), excelize.PageMarginTop(1.0)}, - {new(excelize.PageMarginBottom), excelize.PageMarginBottom(1.0)}, - {new(excelize.PageMarginLeft), excelize.PageMarginLeft(1.0)}, - {new(excelize.PageMarginRight), excelize.PageMarginRight(1.0)}, - {new(excelize.PageMarginHeader), excelize.PageMarginHeader(1.0)}, - {new(excelize.PageMarginFooter), excelize.PageMarginFooter(1.0)}, - } - - for i, test := range testData { - t.Run(fmt.Sprintf("TestData%d", i), func(t *testing.T) { - - opt := test.nonDefault - t.Logf("option %T", opt) - - def := deepcopy.Copy(test.container).(excelize.PageMarginsOptionsPtr) - val1 := deepcopy.Copy(def).(excelize.PageMarginsOptionsPtr) - val2 := deepcopy.Copy(def).(excelize.PageMarginsOptionsPtr) - - f := excelize.NewFile() - // Get the default value - assert.NoError(t, f.GetPageMargins(sheet, def), opt) - // Get again and check - assert.NoError(t, f.GetPageMargins(sheet, val1), opt) - if !assert.Equal(t, val1, def, opt) { - t.FailNow() - } - // Set the same value - assert.NoError(t, f.SetPageMargins(sheet, val1), opt) - // Get again and check - assert.NoError(t, f.GetPageMargins(sheet, val1), opt) - if !assert.Equal(t, val1, def, "%T: value should not have changed", opt) { - t.FailNow() - } - // Set a different value - assert.NoError(t, f.SetPageMargins(sheet, test.nonDefault), opt) - assert.NoError(t, f.GetPageMargins(sheet, val1), opt) - // Get again and compare - assert.NoError(t, f.GetPageMargins(sheet, val2), opt) - if !assert.Equal(t, val1, val2, "%T: value should not have changed", opt) { - t.FailNow() - } - // Value should not be the same as the default - if !assert.NotEqual(t, def, val1, "%T: value should have changed from default", opt) { - t.FailNow() - } - // Restore the default value - assert.NoError(t, f.SetPageMargins(sheet, def), opt) - assert.NoError(t, f.GetPageMargins(sheet, val1), opt) - if !assert.Equal(t, def, val1) { - t.FailNow() - } - }) - } -} -- cgit v1.2.1 From 87390cdd99b3afbe07daeef9abe96f57d03cb352 Mon Sep 17 00:00:00 2001 From: xuri Date: Thu, 24 Oct 2019 23:18:02 +0800 Subject: Resolve #511, allow empty columns in the pivot table --- sheet_test.go | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'sheet_test.go') diff --git a/sheet_test.go b/sheet_test.go index 5179793..ea345a3 100644 --- a/sheet_test.go +++ b/sheet_test.go @@ -66,6 +66,15 @@ func ExampleFile_GetPageLayout() { // - fit to width: 1 } +func TestNewSheet(t *testing.T) { + f := excelize.NewFile() + sheetID := f.NewSheet("Sheet2") + f.SetActiveSheet(sheetID) + // delete original sheet + f.DeleteSheet(f.GetSheetName(f.GetSheetIndex("Sheet1"))) + assert.NoError(t, f.SaveAs(filepath.Join("test", "TestNewSheet.xlsx"))) +} + func TestPageLayoutOption(t *testing.T) { const sheet = "Sheet1" -- cgit v1.2.1 From 5e418ebd665f38d1211b27d7157ec7e5868451bc Mon Sep 17 00:00:00 2001 From: xuri Date: Sat, 26 Oct 2019 20:55:24 +0800 Subject: Resolve #507, add the new function `DeleteDefinedName` --- sheet_test.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'sheet_test.go') diff --git a/sheet_test.go b/sheet_test.go index ea345a3..b9e4abf 100644 --- a/sheet_test.go +++ b/sheet_test.go @@ -210,8 +210,16 @@ func TestDefinedName(t *testing.T) { Name: "Amount", RefersTo: "Sheet1!$A$2:$D$5", Comment: "defined name comment", - }), "the same name already exists on scope") + }), "the same name already exists on the scope") + assert.EqualError(t, f.DeleteDefinedName(&excelize.DefinedName{ + Name: "No Exist Defined Name", + }), "no defined name on the scope") assert.Exactly(t, "Sheet1!$A$2:$D$5", f.GetDefinedName()[1].RefersTo) + assert.NoError(t, f.DeleteDefinedName(&excelize.DefinedName{ + Name: "Amount", + })) + assert.Exactly(t, "Sheet1!$A$2:$D$5", f.GetDefinedName()[0].RefersTo) + assert.Exactly(t, 1, len(f.GetDefinedName())) assert.NoError(t, f.SaveAs(filepath.Join("test", "TestDefinedName.xlsx"))) } -- cgit v1.2.1 From ae2865d9237cfd27d7bc4fbef3870b3361597be8 Mon Sep 17 00:00:00 2001 From: xuri Date: Sun, 22 Dec 2019 00:02:09 +0800 Subject: Improve code coverage unit tests --- sheet_test.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'sheet_test.go') diff --git a/sheet_test.go b/sheet_test.go index b9e4abf..aada60a 100644 --- a/sheet_test.go +++ b/sheet_test.go @@ -75,6 +75,20 @@ func TestNewSheet(t *testing.T) { assert.NoError(t, f.SaveAs(filepath.Join("test", "TestNewSheet.xlsx"))) } +func TestSetPane(t *testing.T) { + f := excelize.NewFile() + assert.NoError(t, f.SetPanes("Sheet1", `{"freeze":false,"split":false}`)) + f.NewSheet("Panes 2") + assert.NoError(t, f.SetPanes("Panes 2", `{"freeze":true,"split":false,"x_split":1,"y_split":0,"top_left_cell":"B1","active_pane":"topRight","panes":[{"sqref":"K16","active_cell":"K16","pane":"topRight"}]}`)) + f.NewSheet("Panes 3") + assert.NoError(t, f.SetPanes("Panes 3", `{"freeze":false,"split":true,"x_split":3270,"y_split":1800,"top_left_cell":"N57","active_pane":"bottomLeft","panes":[{"sqref":"I36","active_cell":"I36"},{"sqref":"G33","active_cell":"G33","pane":"topRight"},{"sqref":"J60","active_cell":"J60","pane":"bottomLeft"},{"sqref":"O60","active_cell":"O60","pane":"bottomRight"}]}`)) + f.NewSheet("Panes 4") + assert.NoError(t, f.SetPanes("Panes 4", `{"freeze":true,"split":false,"x_split":0,"y_split":9,"top_left_cell":"A34","active_pane":"bottomLeft","panes":[{"sqref":"A11:XFD11","active_cell":"A11","pane":"bottomLeft"}]}`)) + assert.NoError(t, f.SetPanes("Panes 4", "")) + assert.EqualError(t, f.SetPanes("SheetN", ""), "sheet SheetN is not exist") + assert.NoError(t, f.SaveAs(filepath.Join("test", "TestSetPane.xlsx"))) +} + func TestPageLayoutOption(t *testing.T) { const sheet = "Sheet1" @@ -156,6 +170,12 @@ func TestSearchSheet(t *testing.T) { result, err = f.SearchSheet("Sheet1", "[0-9]", true) assert.NoError(t, err) assert.EqualValues(t, expected, result) + + // Test search worksheet data after set cell value + f = excelize.NewFile() + assert.NoError(t, f.SetCellValue("Sheet1", "A1", true)) + _, err = f.SearchSheet("Sheet1", "") + assert.NoError(t, err) } func TestSetPageLayout(t *testing.T) { -- cgit v1.2.1 From 1666d04559d9f5b579ab7c850ccc95863c31bd25 Mon Sep 17 00:00:00 2001 From: xuri Date: Tue, 24 Dec 2019 01:09:28 +0800 Subject: optimization: checking error in unit tests --- sheet_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'sheet_test.go') diff --git a/sheet_test.go b/sheet_test.go index aada60a..7a58248 100644 --- a/sheet_test.go +++ b/sheet_test.go @@ -192,7 +192,7 @@ func TestGetPageLayout(t *testing.T) { func TestSetHeaderFooter(t *testing.T) { f := excelize.NewFile() - f.SetCellStr("Sheet1", "A1", "Test SetHeaderFooter") + assert.NoError(t, f.SetCellStr("Sheet1", "A1", "Test SetHeaderFooter")) // Test set header and footer on not exists worksheet. assert.EqualError(t, f.SetHeaderFooter("SheetN", nil), "sheet SheetN is not exist") // Test set header and footer with illegal setting. -- cgit v1.2.1 From 5ca7231ed408ac264f509ff52b5d28ff4fbda757 Mon Sep 17 00:00:00 2001 From: xuri Date: Fri, 3 Jan 2020 23:57:25 +0800 Subject: optimize code and comments: use println errors instead of panic --- sheet_test.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'sheet_test.go') diff --git a/sheet_test.go b/sheet_test.go index 7a58248..a03066a 100644 --- a/sheet_test.go +++ b/sheet_test.go @@ -19,7 +19,7 @@ func ExampleFile_SetPageLayout() { "Sheet1", excelize.PageLayoutOrientation(excelize.OrientationLandscape), ); err != nil { - panic(err) + println(err.Error()) } if err := f.SetPageLayout( "Sheet1", @@ -27,7 +27,7 @@ func ExampleFile_SetPageLayout() { excelize.FitToHeight(2), excelize.FitToWidth(2), ); err != nil { - panic(err) + println(err.Error()) } // Output: } @@ -41,17 +41,17 @@ func ExampleFile_GetPageLayout() { fitToWidth excelize.FitToWidth ) if err := f.GetPageLayout("Sheet1", &orientation); err != nil { - panic(err) + println(err.Error()) } if err := f.GetPageLayout("Sheet1", &paperSize); err != nil { - panic(err) + println(err.Error()) } if err := f.GetPageLayout("Sheet1", &fitToHeight); err != nil { - panic(err) + println(err.Error()) } if err := f.GetPageLayout("Sheet1", &fitToWidth); err != nil { - panic(err) + println(err.Error()) } fmt.Println("Defaults:") fmt.Printf("- orientation: %q\n", orientation) -- cgit v1.2.1 From ad883caa0f77dfc016ae99bd5fbb606953eb99a0 Mon Sep 17 00:00:00 2001 From: xuri Date: Wed, 19 Feb 2020 00:08:10 +0800 Subject: Resolve #580, revert commit https://github.com/360EntSecGroup-Skylar/excelize/commit/5ca7231ed408ac264f509ff52b5d28ff4fbda757 --- sheet_test.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'sheet_test.go') diff --git a/sheet_test.go b/sheet_test.go index a03066a..69c8f22 100644 --- a/sheet_test.go +++ b/sheet_test.go @@ -19,7 +19,7 @@ func ExampleFile_SetPageLayout() { "Sheet1", excelize.PageLayoutOrientation(excelize.OrientationLandscape), ); err != nil { - println(err.Error()) + fmt.Println(err) } if err := f.SetPageLayout( "Sheet1", @@ -27,7 +27,7 @@ func ExampleFile_SetPageLayout() { excelize.FitToHeight(2), excelize.FitToWidth(2), ); err != nil { - println(err.Error()) + fmt.Println(err) } // Output: } @@ -41,17 +41,17 @@ func ExampleFile_GetPageLayout() { fitToWidth excelize.FitToWidth ) if err := f.GetPageLayout("Sheet1", &orientation); err != nil { - println(err.Error()) + fmt.Println(err) } if err := f.GetPageLayout("Sheet1", &paperSize); err != nil { - println(err.Error()) + fmt.Println(err) } if err := f.GetPageLayout("Sheet1", &fitToHeight); err != nil { - println(err.Error()) + fmt.Println(err) } if err := f.GetPageLayout("Sheet1", &fitToWidth); err != nil { - println(err.Error()) + fmt.Println(err) } fmt.Println("Defaults:") fmt.Printf("- orientation: %q\n", orientation) -- cgit v1.2.1 From 1d87da57ecf5e13203b6441dd97160885981545e Mon Sep 17 00:00:00 2001 From: xuri Date: Sun, 1 Mar 2020 00:34:41 +0800 Subject: Resolve #492, init support for insert and remove page break --- sheet_test.go | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) (limited to 'sheet_test.go') diff --git a/sheet_test.go b/sheet_test.go index 69c8f22..38d86e6 100644 --- a/sheet_test.go +++ b/sheet_test.go @@ -264,6 +264,43 @@ func TestUngroupSheets(t *testing.T) { assert.NoError(t, f.UngroupSheets()) } +func TestInsertPageBreak(t *testing.T) { + f := excelize.NewFile() + assert.NoError(t, f.InsertPageBreak("Sheet1", "A1")) + assert.NoError(t, f.InsertPageBreak("Sheet1", "B2")) + assert.NoError(t, f.InsertPageBreak("Sheet1", "C3")) + assert.NoError(t, f.InsertPageBreak("Sheet1", "C3")) + assert.EqualError(t, f.InsertPageBreak("Sheet1", "A"), `cannot convert cell "A" to coordinates: invalid cell name "A"`) + assert.EqualError(t, f.InsertPageBreak("SheetN", "C3"), "sheet SheetN is not exist") + assert.NoError(t, f.SaveAs(filepath.Join("test", "TestInsertPageBreak.xlsx"))) +} + +func TestRemovePageBreak(t *testing.T) { + f := excelize.NewFile() + assert.NoError(t, f.RemovePageBreak("Sheet1", "A2")) + + assert.NoError(t, f.InsertPageBreak("Sheet1", "A2")) + assert.NoError(t, f.InsertPageBreak("Sheet1", "B2")) + assert.NoError(t, f.RemovePageBreak("Sheet1", "A1")) + assert.NoError(t, f.RemovePageBreak("Sheet1", "B2")) + + assert.NoError(t, f.InsertPageBreak("Sheet1", "C3")) + assert.NoError(t, f.RemovePageBreak("Sheet1", "C3")) + + assert.NoError(t, f.InsertPageBreak("Sheet1", "A3")) + assert.NoError(t, f.RemovePageBreak("Sheet1", "B3")) + assert.NoError(t, f.RemovePageBreak("Sheet1", "A3")) + + f.NewSheet("Sheet2") + assert.NoError(t, f.InsertPageBreak("Sheet2", "B2")) + assert.NoError(t, f.InsertPageBreak("Sheet2", "C2")) + assert.NoError(t, f.RemovePageBreak("Sheet2", "B2")) + + assert.EqualError(t, f.RemovePageBreak("Sheet1", "A"), `cannot convert cell "A" to coordinates: invalid cell name "A"`) + assert.EqualError(t, f.RemovePageBreak("SheetN", "C3"), "sheet SheetN is not exist") + assert.NoError(t, f.SaveAs(filepath.Join("test", "TestRemovePageBreak.xlsx"))) +} + func TestGetSheetName(t *testing.T) { f, _ := excelize.OpenFile(filepath.Join("test", "Book1.xlsx")) assert.Equal(t, "Sheet1", f.GetSheetName(1)) -- cgit v1.2.1 From 1fe660df648422a53eef0c735657cb2f5237ef7b Mon Sep 17 00:00:00 2001 From: xuri Date: Thu, 23 Apr 2020 02:01:14 +0800 Subject: - Resolve #485 use sheet index instead of ID - added 3 internal function: getSheetID, getActiveSheetID, getSheetNameByID --- sheet_test.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'sheet_test.go') diff --git a/sheet_test.go b/sheet_test.go index 38d86e6..0014220 100644 --- a/sheet_test.go +++ b/sheet_test.go @@ -303,10 +303,10 @@ func TestRemovePageBreak(t *testing.T) { func TestGetSheetName(t *testing.T) { f, _ := excelize.OpenFile(filepath.Join("test", "Book1.xlsx")) - assert.Equal(t, "Sheet1", f.GetSheetName(1)) - assert.Equal(t, "Sheet2", f.GetSheetName(2)) - assert.Equal(t, "", f.GetSheetName(0)) - assert.Equal(t, "", f.GetSheetName(3)) + assert.Equal(t, "Sheet1", f.GetSheetName(0)) + assert.Equal(t, "Sheet2", f.GetSheetName(1)) + assert.Equal(t, "", f.GetSheetName(-1)) + assert.Equal(t, "", f.GetSheetName(2)) } func TestGetSheetMap(t *testing.T) { -- cgit v1.2.1