From f2b8798a34aab4411a50861a4cdf47203edc3a19 Mon Sep 17 00:00:00 2001 From: Artem Kustikov Date: Sun, 4 Oct 2020 16:07:39 +0300 Subject: extend cell value load to support custom datetime format (#703) * extend cell value load to support custom datetime format * cleanup incorrect imports * fix numeric values conversion as done in legacy Excel * fix tests coverage * revert temporary package name fix * remove personal info from test XLSX files * remove unused dependencies * update format conversion in parseTime * new UT to increase code coverage * Resolve code review issue for PR #703 * Rename broken file name generated by unit test Co-authored-by: xuri --- sheet_test.go | 86 +++++++++++++++++++++++++++++------------------------------ 1 file changed, 42 insertions(+), 44 deletions(-) (limited to 'sheet_test.go') diff --git a/sheet_test.go b/sheet_test.go index 0014220..890a4e5 100644 --- a/sheet_test.go +++ b/sheet_test.go @@ -1,4 +1,4 @@ -package excelize_test +package excelize import ( "fmt" @@ -6,26 +6,24 @@ import ( "strings" "testing" - "github.com/360EntSecGroup-Skylar/excelize/v2" - "github.com/mohae/deepcopy" "github.com/stretchr/testify/assert" ) func ExampleFile_SetPageLayout() { - f := excelize.NewFile() + f := NewFile() if err := f.SetPageLayout( "Sheet1", - excelize.PageLayoutOrientation(excelize.OrientationLandscape), + PageLayoutOrientation(OrientationLandscape), ); err != nil { fmt.Println(err) } if err := f.SetPageLayout( "Sheet1", - excelize.PageLayoutPaperSize(10), - excelize.FitToHeight(2), - excelize.FitToWidth(2), + PageLayoutPaperSize(10), + FitToHeight(2), + FitToWidth(2), ); err != nil { fmt.Println(err) } @@ -33,12 +31,12 @@ func ExampleFile_SetPageLayout() { } func ExampleFile_GetPageLayout() { - f := excelize.NewFile() + f := NewFile() var ( - orientation excelize.PageLayoutOrientation - paperSize excelize.PageLayoutPaperSize - fitToHeight excelize.FitToHeight - fitToWidth excelize.FitToWidth + orientation PageLayoutOrientation + paperSize PageLayoutPaperSize + fitToHeight FitToHeight + fitToWidth FitToWidth ) if err := f.GetPageLayout("Sheet1", &orientation); err != nil { fmt.Println(err) @@ -67,7 +65,7 @@ func ExampleFile_GetPageLayout() { } func TestNewSheet(t *testing.T) { - f := excelize.NewFile() + f := NewFile() sheetID := f.NewSheet("Sheet2") f.SetActiveSheet(sheetID) // delete original sheet @@ -76,7 +74,7 @@ func TestNewSheet(t *testing.T) { } func TestSetPane(t *testing.T) { - f := excelize.NewFile() + f := 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"}]}`)) @@ -93,13 +91,13 @@ func TestPageLayoutOption(t *testing.T) { const sheet = "Sheet1" testData := []struct { - container excelize.PageLayoutOptionPtr - nonDefault excelize.PageLayoutOption + container PageLayoutOptionPtr + nonDefault PageLayoutOption }{ - {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)}, + {new(PageLayoutOrientation), PageLayoutOrientation(OrientationLandscape)}, + {new(PageLayoutPaperSize), PageLayoutPaperSize(10)}, + {new(FitToHeight), FitToHeight(2)}, + {new(FitToWidth), FitToWidth(2)}, } for i, test := range testData { @@ -108,11 +106,11 @@ func TestPageLayoutOption(t *testing.T) { opt := test.nonDefault t.Logf("option %T", opt) - def := deepcopy.Copy(test.container).(excelize.PageLayoutOptionPtr) - val1 := deepcopy.Copy(def).(excelize.PageLayoutOptionPtr) - val2 := deepcopy.Copy(def).(excelize.PageLayoutOptionPtr) + def := deepcopy.Copy(test.container).(PageLayoutOptionPtr) + val1 := deepcopy.Copy(def).(PageLayoutOptionPtr) + val2 := deepcopy.Copy(def).(PageLayoutOptionPtr) - f := excelize.NewFile() + f := NewFile() // Get the default value assert.NoError(t, f.GetPageLayout(sheet, def), opt) // Get again and check @@ -150,7 +148,7 @@ func TestPageLayoutOption(t *testing.T) { } func TestSearchSheet(t *testing.T) { - f, err := excelize.OpenFile(filepath.Join("test", "SharedStrings.xlsx")) + f, err := OpenFile(filepath.Join("test", "SharedStrings.xlsx")) if !assert.NoError(t, err) { t.FailNow() } @@ -172,36 +170,36 @@ func TestSearchSheet(t *testing.T) { assert.EqualValues(t, expected, result) // Test search worksheet data after set cell value - f = excelize.NewFile() + f = NewFile() assert.NoError(t, f.SetCellValue("Sheet1", "A1", true)) _, err = f.SearchSheet("Sheet1", "") assert.NoError(t, err) } func TestSetPageLayout(t *testing.T) { - f := excelize.NewFile() + f := NewFile() // Test set page layout on not exists worksheet. assert.EqualError(t, f.SetPageLayout("SheetN"), "sheet SheetN is not exist") } func TestGetPageLayout(t *testing.T) { - f := excelize.NewFile() + f := NewFile() // 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 := NewFile() 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. - assert.EqualError(t, f.SetHeaderFooter("Sheet1", &excelize.FormatHeaderFooter{ + assert.EqualError(t, f.SetHeaderFooter("Sheet1", &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{ + assert.NoError(t, f.SetHeaderFooter("Sheet1", &FormatHeaderFooter{ DifferentFirst: true, DifferentOddEven: true, OddHeader: "&R&P", @@ -214,28 +212,28 @@ func TestSetHeaderFooter(t *testing.T) { } func TestDefinedName(t *testing.T) { - f := excelize.NewFile() - assert.NoError(t, f.SetDefinedName(&excelize.DefinedName{ + f := NewFile() + assert.NoError(t, f.SetDefinedName(&DefinedName{ Name: "Amount", RefersTo: "Sheet1!$A$2:$D$5", Comment: "defined name comment", Scope: "Sheet1", })) - assert.NoError(t, f.SetDefinedName(&excelize.DefinedName{ + assert.NoError(t, f.SetDefinedName(&DefinedName{ Name: "Amount", RefersTo: "Sheet1!$A$2:$D$5", Comment: "defined name comment", })) - assert.EqualError(t, f.SetDefinedName(&excelize.DefinedName{ + assert.EqualError(t, f.SetDefinedName(&DefinedName{ Name: "Amount", RefersTo: "Sheet1!$A$2:$D$5", Comment: "defined name comment", }), "the same name already exists on the scope") - assert.EqualError(t, f.DeleteDefinedName(&excelize.DefinedName{ + assert.EqualError(t, f.DeleteDefinedName(&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{ + assert.NoError(t, f.DeleteDefinedName(&DefinedName{ Name: "Amount", })) assert.Exactly(t, "Sheet1!$A$2:$D$5", f.GetDefinedName()[0].RefersTo) @@ -244,7 +242,7 @@ func TestDefinedName(t *testing.T) { } func TestGroupSheets(t *testing.T) { - f := excelize.NewFile() + f := NewFile() sheets := []string{"Sheet2", "Sheet3"} for _, sheet := range sheets { f.NewSheet(sheet) @@ -256,7 +254,7 @@ func TestGroupSheets(t *testing.T) { } func TestUngroupSheets(t *testing.T) { - f := excelize.NewFile() + f := NewFile() sheets := []string{"Sheet2", "Sheet3", "Sheet4", "Sheet5"} for _, sheet := range sheets { f.NewSheet(sheet) @@ -265,7 +263,7 @@ func TestUngroupSheets(t *testing.T) { } func TestInsertPageBreak(t *testing.T) { - f := excelize.NewFile() + f := NewFile() assert.NoError(t, f.InsertPageBreak("Sheet1", "A1")) assert.NoError(t, f.InsertPageBreak("Sheet1", "B2")) assert.NoError(t, f.InsertPageBreak("Sheet1", "C3")) @@ -276,7 +274,7 @@ func TestInsertPageBreak(t *testing.T) { } func TestRemovePageBreak(t *testing.T) { - f := excelize.NewFile() + f := NewFile() assert.NoError(t, f.RemovePageBreak("Sheet1", "A2")) assert.NoError(t, f.InsertPageBreak("Sheet1", "A2")) @@ -302,7 +300,7 @@ func TestRemovePageBreak(t *testing.T) { } func TestGetSheetName(t *testing.T) { - f, _ := excelize.OpenFile(filepath.Join("test", "Book1.xlsx")) + f, _ := OpenFile(filepath.Join("test", "Book1.xlsx")) assert.Equal(t, "Sheet1", f.GetSheetName(0)) assert.Equal(t, "Sheet2", f.GetSheetName(1)) assert.Equal(t, "", f.GetSheetName(-1)) @@ -314,7 +312,7 @@ func TestGetSheetMap(t *testing.T) { 1: "Sheet1", 2: "Sheet2", } - f, _ := excelize.OpenFile(filepath.Join("test", "Book1.xlsx")) + f, _ := OpenFile(filepath.Join("test", "Book1.xlsx")) sheetMap := f.GetSheetMap() for idx, name := range sheetMap { assert.Equal(t, expectedMap[idx], name) -- cgit v1.2.1