excelize_test.go 3.6 KB
Newer Older
xurime's avatar
xurime 已提交
1 2 3
package excelize

import (
xurime's avatar
xurime 已提交
4
	"strconv"
xurime's avatar
xurime 已提交
5 6 7 8
	"testing"
)

func TestExcelize(t *testing.T) {
xurime's avatar
xurime 已提交
9 10
	// Test update a XLSX file.
	f1, err := OpenFile("./test/Workbook1.xlsx")
11 12 13
	if err != nil {
		t.Log(err)
	}
14 15 16 17 18 19 20 21 22 23
	// Test get all the rows in a not exists sheet.
	rows := f1.GetRows("Sheet4")
	// Test get all the rows in a sheet.
	rows = f1.GetRows("Sheet2")
	for _, row := range rows {
		for _, cell := range row {
			t.Log(cell, "\t")
		}
		t.Log("\r\n")
	}
S
Sharsie 已提交
24 25 26
	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))
xurime's avatar
xurime 已提交
27 28
	f1.SetCellInt("SHEET2", "A1", 100)
	f1.SetCellStr("SHEET2", "C11", "Knowns")
29
	f1.NewSheet(3, "Maximum 31 characters allowed in sheet title.")
xurime's avatar
xurime 已提交
30 31 32 33
	f1.SetCellInt("Sheet3", "A23", 10)
	f1.SetCellStr("SHEET3", "b230", "10")
	f1.SetCellStr("SHEET10", "b230", "10")
	f1.SetActiveSheet(2)
xurime's avatar
xurime 已提交
34 35 36
	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.
xurime's avatar
xurime 已提交
37 38 39 40 41 42 43 44 45 46 47
	// Test read cell value with given illegal rows number.
	f1.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")
	// Test SetCellValue function.
	f1.SetCellValue("Sheet2", "F1", "Hello")
	f1.SetCellValue("Sheet2", "G1", []byte("World"))
	f1.SetCellValue("Sheet2", "F2", 42)
48 49 50 51
	f1.SetCellValue("Sheet2", "F2", int8(42))
	f1.SetCellValue("Sheet2", "F2", int16(42))
	f1.SetCellValue("Sheet2", "F2", int32(42))
	f1.SetCellValue("Sheet2", "F2", int64(42))
S
Sharsie 已提交
52 53
    	f1.SetCellValue("Sheet2", "F2", float32(42.65418))
    	f1.SetCellValue("Sheet2", "F2", float64(-42.65418))
54 55
	f1.SetCellValue("Sheet2", "F2", float32(42))
	f1.SetCellValue("Sheet2", "F2", float64(42))
xurime's avatar
xurime 已提交
56
	f1.SetCellValue("Sheet2", "G2", nil)
xurime's avatar
xurime 已提交
57 58
	// Test completion column.
	f1.SetCellValue("Sheet2", "M2", nil)
xurime's avatar
xurime 已提交
59
	// Test read cell value with given axis large than exists row.
xurime's avatar
xurime 已提交
60
	f1.GetCellValue("Sheet2", "E231")
61 62 63 64 65 66
	// Test get active sheet of XLSX and get sheet name of XLSX by given sheet index.
	f1.GetSheetName(f1.GetActiveSheetIndex())
	// Test get sheet name of XLSX by given invalid sheet index.
	f1.GetSheetName(4)
	// Test get sheet map of XLSX.
	f1.GetSheetMap()
67

68
	for i := 1; i <= 300; i++ {
xurime's avatar
xurime 已提交
69
		f1.SetCellStr("SHEET3", "c"+strconv.Itoa(i), strconv.Itoa(i))
xurime's avatar
xurime 已提交
70
	}
xurime's avatar
xurime 已提交
71
	err = f1.Save()
xurime's avatar
xurime 已提交
72
	if err != nil {
73
		t.Log(err)
xurime's avatar
xurime 已提交
74
	}
xurime's avatar
xurime 已提交
75 76
	// Test write file to given path.
	err = f1.WriteTo("./test/Workbook_2.xlsx")
77 78 79
	if err != nil {
		t.Log(err)
	}
xurime's avatar
xurime 已提交
80 81
	// Test write file to not exist directory.
	err = f1.WriteTo("")
82 83 84
	if err != nil {
		t.Log(err)
	}
xurime's avatar
xurime 已提交
85

xurime's avatar
xurime 已提交
86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
	// Test write file with broken file struct.
	f2 := File{}
	err = f2.Save()
	if err != nil {
		t.Log(err)
	}
	// Test write file with broken file struct with given path.
	err = f2.WriteTo("./test/Workbook_3.xlsx")
	if err != nil {
		t.Log(err)
	}

	// Test create a XLSX file.
	f3 := CreateFile()
	f3.NewSheet(2, "XLSXSheet2")
	f3.NewSheet(3, "XLSXSheet3")
	f3.SetCellInt("Sheet2", "A23", 56)
	f3.SetCellStr("SHEET1", "B20", "42")
	f3.SetActiveSheet(0)
	err = f3.WriteTo("./test/Workbook_3.xlsx")
xurime's avatar
xurime 已提交
106
	if err != nil {
107
		t.Log(err)
xurime's avatar
xurime 已提交
108
	}
xurime's avatar
xurime 已提交
109

xurime's avatar
xurime 已提交
110 111 112 113 114 115 116
	// Test set active sheet without BookViews and Sheets maps in xl/workbook.xml.
	f4, err := OpenFile("./test/badWorkbook.xlsx")
	f4.SetActiveSheet(2)
	if err != nil {
		t.Log(err)
	}

xurime's avatar
xurime 已提交
117
	// Test open a XLSX file with given illegal path.
118 119 120 121
	_, err = OpenFile("./test/Workbook.xlsx")
	if err != nil {
		t.Log(err)
	}
xurime's avatar
xurime 已提交
122
}