excelize_test.go 3.3 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")
	}
xurime's avatar
xurime 已提交
24 25 26
	f1.UpdateLinkedValue()
	f1.SetCellInt("SHEET2", "A1", 100)
	f1.SetCellStr("SHEET2", "C11", "Knowns")
27
	f1.NewSheet(3, "Maximum 31 characters allowed in sheet title.")
xurime's avatar
xurime 已提交
28 29 30 31
	f1.SetCellInt("Sheet3", "A23", 10)
	f1.SetCellStr("SHEET3", "b230", "10")
	f1.SetCellStr("SHEET10", "b230", "10")
	f1.SetActiveSheet(2)
xurime's avatar
xurime 已提交
32 33 34
	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 已提交
35 36 37 38 39 40 41 42 43 44 45
	// 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)
46 47 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))
	f1.SetCellValue("Sheet2", "F2", float32(42))
	f1.SetCellValue("Sheet2", "F2", float64(42))
xurime's avatar
xurime 已提交
52
	f1.SetCellValue("Sheet2", "G2", nil)
xurime's avatar
xurime 已提交
53 54
	// Test completion column.
	f1.SetCellValue("Sheet2", "M2", nil)
xurime's avatar
xurime 已提交
55
	// Test read cell value with given axis large than exists row.
xurime's avatar
xurime 已提交
56
	f1.GetCellValue("Sheet2", "E231")
57 58 59 60 61 62
	// 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()
63

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

xurime's avatar
xurime 已提交
82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
	// 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 已提交
102
	if err != nil {
103
		t.Log(err)
xurime's avatar
xurime 已提交
104
	}
xurime's avatar
xurime 已提交
105

xurime's avatar
xurime 已提交
106 107 108 109 110 111 112
	// 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 已提交
113
	// Test open a XLSX file with given illegal path.
114 115 116 117
	_, err = OpenFile("./test/Workbook.xlsx")
	if err != nil {
		t.Log(err)
	}
xurime's avatar
xurime 已提交
118
}