excelize_test.go 2.8 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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
	f1.UpdateLinkedValue()
	f1.SetCellInt("SHEET2", "A1", 100)
	f1.SetCellStr("SHEET2", "C11", "Knowns")
	f1.NewSheet(3, "TestSheet")
	f1.SetCellInt("Sheet3", "A23", 10)
	f1.SetCellStr("SHEET3", "b230", "10")
	f1.SetCellStr("SHEET10", "b230", "10")
	f1.SetActiveSheet(2)
	// 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)
43 44 45 46 47 48
	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 已提交
49
	f1.SetCellValue("Sheet2", "G2", nil)
xurime's avatar
xurime 已提交
50 51
	// Test completion column.
	f1.SetCellValue("Sheet2", "M2", nil)
xurime's avatar
xurime 已提交
52
	// Test read cell value with given axis large than exists row.
xurime's avatar
xurime 已提交
53
	f1.GetCellValue("Sheet2", "E231")
54

55
	for i := 1; i <= 300; i++ {
xurime's avatar
xurime 已提交
56
		f1.SetCellStr("SHEET3", "c"+strconv.Itoa(i), strconv.Itoa(i))
xurime's avatar
xurime 已提交
57
	}
xurime's avatar
xurime 已提交
58
	err = f1.Save()
xurime's avatar
xurime 已提交
59
	if err != nil {
60
		t.Log(err)
xurime's avatar
xurime 已提交
61
	}
xurime's avatar
xurime 已提交
62 63
	// Test write file to given path.
	err = f1.WriteTo("./test/Workbook_2.xlsx")
64 65 66
	if err != nil {
		t.Log(err)
	}
xurime's avatar
xurime 已提交
67 68
	// Test write file to not exist directory.
	err = f1.WriteTo("")
69 70 71
	if err != nil {
		t.Log(err)
	}
xurime's avatar
xurime 已提交
72

xurime's avatar
xurime 已提交
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
	// 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 已提交
93
	if err != nil {
94
		t.Log(err)
xurime's avatar
xurime 已提交
95
	}
xurime's avatar
xurime 已提交
96

xurime's avatar
xurime 已提交
97 98 99 100 101 102 103
	// 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 已提交
104
	// Test open a XLSX file with given illegal path.
105 106 107 108
	_, err = OpenFile("./test/Workbook.xlsx")
	if err != nil {
		t.Log(err)
	}
xurime's avatar
xurime 已提交
109
}