From 4a9b39afc634a2399c4729f4fb47c9f290ab1ee5 Mon Sep 17 00:00:00 2001 From: Ri Xu Date: Thu, 19 Jan 2017 14:05:32 +0800 Subject: - Add hyperlink and set formula support for cell support; - Character limits for cells added; - Update go test and fix typo --- excelize_test.go | 181 +++++++++++++++++++++++++++++++++---------------------- 1 file changed, 110 insertions(+), 71 deletions(-) (limited to 'excelize_test.go') diff --git a/excelize_test.go b/excelize_test.go index 6e41968..278912b 100644 --- a/excelize_test.go +++ b/excelize_test.go @@ -7,108 +7,119 @@ import ( func TestOpenFile(t *testing.T) { // Test update a XLSX file. - f1, err := OpenFile("./test/Workbook1.xlsx") + xlsx, err := OpenFile("./test/Workbook1.xlsx") if err != nil { t.Log(err) } // Test get all the rows in a not exists sheet. - rows := f1.GetRows("Sheet4") + rows := xlsx.GetRows("Sheet4") // Test get all the rows in a sheet. - rows = f1.GetRows("Sheet2") + rows = xlsx.GetRows("Sheet2") for _, row := range rows { for _, cell := range row { t.Log(cell, "\t") } t.Log("\r\n") } - f1.UpdateLinkedValue() - f1.SetCellDefault("SHEET2", "A1", strconv.FormatFloat(float64(100.1588), 'f', -1, 32)) - f1.SetCellDefault("SHEET2", "A1", strconv.FormatFloat(float64(-100.1588), 'f', -1, 64)) - f1.SetCellInt("SHEET2", "A1", 100) - f1.SetCellStr("SHEET2", "C11", "Knowns") - f1.NewSheet(3, ":\\/?*[]Maximum 31 characters allowed in sheet title.") + xlsx.UpdateLinkedValue() + xlsx.SetCellDefault("SHEET2", "A1", strconv.FormatFloat(float64(100.1588), 'f', -1, 32)) + xlsx.SetCellDefault("SHEET2", "A1", strconv.FormatFloat(float64(-100.1588), 'f', -1, 64)) + xlsx.SetCellInt("SHEET2", "A1", 100) + xlsx.SetCellStr("SHEET2", "C11", "Knowns") + // Test max characters in a cell. + var s = "c" + for i := 0; i < 32768; i++ { + s += "c" + } + xlsx.SetCellStr("SHEET2", "D11", s) + xlsx.NewSheet(3, ":\\/?*[]Maximum 31 characters allowed in sheet title.") // Test set sheet name with illegal name. - f1.SetSheetName("Maximum 31 characters allowed i", "[Rename]:\\/?* Maximum 31 characters allowed in sheet title.") - f1.SetCellInt("Sheet3", "A23", 10) - f1.SetCellStr("SHEET3", "b230", "10") - f1.SetCellStr("SHEET10", "b230", "10") - f1.SetActiveSheet(2) - f1.GetCellFormula("Sheet1", "B19") // Test get cell formula with given rows number. - f1.GetCellFormula("Sheet2", "B20") // Test get cell formula with illegal sheet index. - f1.GetCellFormula("Sheet1", "B20") // Test get cell formula with illegal rows number. + xlsx.SetSheetName("Maximum 31 characters allowed i", "[Rename]:\\/?* Maximum 31 characters allowed in sheet title.") + xlsx.SetCellInt("Sheet3", "A23", 10) + xlsx.SetCellStr("SHEET3", "b230", "10") + xlsx.SetCellStr("SHEET10", "b230", "10") + xlsx.SetActiveSheet(2) + xlsx.GetCellFormula("Sheet1", "B19") // Test get cell formula with given rows number. + xlsx.GetCellFormula("Sheet2", "B20") // Test get cell formula with illegal sheet index. + xlsx.GetCellFormula("Sheet1", "B20") // Test get cell formula with illegal rows number. // Test read cell value with given illegal rows number. - f1.GetCellValue("Sheet2", "a-1") + xlsx.GetCellValue("Sheet2", "a-1") // Test read cell value with given lowercase column number. - f1.GetCellValue("Sheet2", "a5") - f1.GetCellValue("Sheet2", "C11") - f1.GetCellValue("Sheet2", "D11") - f1.GetCellValue("Sheet2", "D12") + xlsx.GetCellValue("Sheet2", "a5") + xlsx.GetCellValue("Sheet2", "C11") + xlsx.GetCellValue("Sheet2", "D11") + xlsx.GetCellValue("Sheet2", "D12") // Test SetCellValue function. - f1.SetCellValue("Sheet2", "F1", "Hello") - f1.SetCellValue("Sheet2", "G1", []byte("World")) - f1.SetCellValue("Sheet2", "F2", 42) - f1.SetCellValue("Sheet2", "F2", int8(42)) - f1.SetCellValue("Sheet2", "F2", int16(42)) - f1.SetCellValue("Sheet2", "F2", int32(42)) - f1.SetCellValue("Sheet2", "F2", int64(42)) - f1.SetCellValue("Sheet2", "F2", float32(42.65418)) - f1.SetCellValue("Sheet2", "F2", float64(-42.65418)) - f1.SetCellValue("Sheet2", "F2", float32(42)) - f1.SetCellValue("Sheet2", "F2", float64(42)) - f1.SetCellValue("Sheet2", "G2", nil) + xlsx.SetCellValue("Sheet2", "F1", "Hello") + xlsx.SetCellValue("Sheet2", "G1", []byte("World")) + xlsx.SetCellValue("Sheet2", "F2", 42) + xlsx.SetCellValue("Sheet2", "F2", int8(42)) + xlsx.SetCellValue("Sheet2", "F2", int16(42)) + xlsx.SetCellValue("Sheet2", "F2", int32(42)) + xlsx.SetCellValue("Sheet2", "F2", int64(42)) + xlsx.SetCellValue("Sheet2", "F2", float32(42.65418)) + xlsx.SetCellValue("Sheet2", "F2", float64(-42.65418)) + xlsx.SetCellValue("Sheet2", "F2", float32(42)) + xlsx.SetCellValue("Sheet2", "F2", float64(42)) + xlsx.SetCellValue("Sheet2", "G2", nil) // Test completion column. - f1.SetCellValue("Sheet2", "M2", nil) + xlsx.SetCellValue("Sheet2", "M2", nil) // Test read cell value with given axis large than exists row. - f1.GetCellValue("Sheet2", "E231") + xlsx.GetCellValue("Sheet2", "E231") // Test get active sheet of XLSX and get sheet name of XLSX by given sheet index. - f1.GetSheetName(f1.GetActiveSheetIndex()) + xlsx.GetSheetName(xlsx.GetActiveSheetIndex()) // Test get sheet name of XLSX by given invalid sheet index. - f1.GetSheetName(4) + xlsx.GetSheetName(4) // Test get sheet map of XLSX. - f1.GetSheetMap() - + xlsx.GetSheetMap() for i := 1; i <= 300; i++ { - f1.SetCellStr("SHEET3", "c"+strconv.Itoa(i), strconv.Itoa(i)) + xlsx.SetCellStr("SHEET3", "c"+strconv.Itoa(i), strconv.Itoa(i)) + } + err = xlsx.Save() + if err != nil { + t.Log(err) + } + // Test write file to not exist directory. + err = xlsx.WriteTo("") + if err != nil { + t.Log(err) } - err = f1.Save() +} + +func TestAddPicture(t *testing.T) { + xlsx, err := OpenFile("./test/Workbook1.xlsx") if err != nil { t.Log(err) } // Test add picture to sheet. - err = f1.AddPicture("Sheet2", "I1", "L10", "./test/images/excel.jpg") + err = xlsx.AddPicture("Sheet2", "I1", "L10", "./test/images/excel.jpg") if err != nil { t.Log(err) } - err = f1.AddPicture("Sheet1", "F21", "G25", "./test/images/excel.png") + err = xlsx.AddPicture("Sheet1", "F21", "G25", "./test/images/excel.png") if err != nil { t.Log(err) } - err = f1.AddPicture("Sheet2", "L1", "O10", "./test/images/excel.bmp") + err = xlsx.AddPicture("Sheet2", "L1", "O10", "./test/images/excel.bmp") if err != nil { t.Log(err) } - err = f1.AddPicture("Sheet1", "G21", "H25", "./test/images/excel.ico") + err = xlsx.AddPicture("Sheet1", "G21", "H25", "./test/images/excel.ico") if err != nil { t.Log(err) } // Test add picture to sheet with unsupport file type. - err = f1.AddPicture("Sheet1", "G21", "H25", "./test/images/excel.icon") + err = xlsx.AddPicture("Sheet1", "G21", "H25", "./test/images/excel.icon") if err != nil { t.Log(err) } // Test add picture to sheet with invalid file path. - err = f1.AddPicture("Sheet1", "G21", "H25", "./test/Workbook1.xlsx") + err = xlsx.AddPicture("Sheet1", "G21", "H25", "./test/Workbook1.xlsx") if err != nil { t.Log(err) } - // Test write file to given path. - err = f1.WriteTo("./test/Workbook_2.xlsx") - if err != nil { - t.Log(err) - } - // Test write file to not exist directory. - err = f1.WriteTo("") + err = xlsx.WriteTo("./test/Workbook_2.xlsx") if err != nil { t.Log(err) } @@ -116,13 +127,13 @@ func TestOpenFile(t *testing.T) { func TestBrokenFile(t *testing.T) { // Test write file with broken file struct. - f2 := File{} - err := f2.Save() + xlsx := File{} + err := xlsx.Save() if err != nil { t.Log(err) } // Test write file with broken file struct with given path. - err = f2.WriteTo("./test/Workbook_3.xlsx") + err = xlsx.WriteTo("./test/Workbook_3.xlsx") if err != nil { t.Log(err) } @@ -143,35 +154,63 @@ func TestBrokenFile(t *testing.T) { func TestCreateFile(t *testing.T) { // Test create a XLSX file. - f4 := CreateFile() - f4.NewSheet(2, "XLSXSheet2") - f4.NewSheet(3, "XLSXSheet3") - f4.SetCellInt("Sheet2", "A23", 56) - f4.SetCellStr("SHEET1", "B20", "42") - f4.SetActiveSheet(0) + xlsx := CreateFile() + xlsx.NewSheet(2, "XLSXSheet2") + xlsx.NewSheet(3, "XLSXSheet3") + xlsx.SetCellInt("Sheet2", "A23", 56) + xlsx.SetCellStr("SHEET1", "B20", "42") + xlsx.SetActiveSheet(0) // Test add picture to sheet. - err := f4.AddPicture("Sheet1", "H2", "K12", "./test/images/excel.gif") + err := xlsx.AddPicture("Sheet1", "H2", "K12", "./test/images/excel.gif") if err != nil { t.Log(err) } - err = f4.AddPicture("Sheet1", "C2", "F12", "./test/images/excel.tif") + err = xlsx.AddPicture("Sheet1", "C2", "F12", "./test/images/excel.tif") if err != nil { t.Log(err) } - err = f4.WriteTo("./test/Workbook_3.xlsx") + err = xlsx.WriteTo("./test/Workbook_3.xlsx") if err != nil { t.Log(err) } } func TestSetColWidth(t *testing.T) { - f5, err := OpenFile("./test/Workbook1.xlsx") + xlsx, err := OpenFile("./test/Workbook1.xlsx") + if err != nil { + t.Log(err) + } + xlsx.SetColWidth("sheet1", "B", "A", 12) + xlsx.SetColWidth("sheet1", "A", "B", 12) + err = xlsx.Save() + if err != nil { + t.Log(err) + } +} + +func TestSetCellHyperLink(t *testing.T) { + xlsx, err := OpenFile("./test/Workbook1.xlsx") + if err != nil { + t.Log(err) + } + // Test set cell hyperlink in a work sheet already have hyperlinks. + xlsx.SetCellHyperLink("sheet1", "B19", "https://github.com/Luxurioust/excelize") + // Test add first hyperlink in a work sheet. + xlsx.SetCellHyperLink("sheet2", "C1", "https://github.com/Luxurioust/excelize") + err = xlsx.Save() + if err != nil { + t.Log(err) + } +} + +func TestSetCellFormula(t *testing.T) { + xlsx, err := OpenFile("./test/Workbook1.xlsx") if err != nil { t.Log(err) } - f5.SetColWidth("sheet1", "B", "A", 12) - f5.SetColWidth("sheet1", "A", "B", 12) - err = f5.Save() + xlsx.SetCellFormula("sheet1", "B19", "SUM(Sheet2!D2,Sheet2!D11)") + xlsx.SetCellFormula("sheet1", "C19", "SUM(Sheet2!D2,Sheet2!D9)") + err = xlsx.Save() if err != nil { t.Log(err) } -- cgit v1.2.1