excelize_test.go 2.5 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 43
	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)
	f1.SetCellValue("Sheet2", "G2", nil)
xurime's avatar
xurime 已提交
44 45
	// Test completion column.
	f1.SetCellValue("Sheet2", "M2", nil)
xurime's avatar
xurime 已提交
46
	// Test read cell value with given axis large than exists row.
xurime's avatar
xurime 已提交
47
	f1.GetCellValue("Sheet2", "E231")
48

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

xurime's avatar
xurime 已提交
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
	// 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 已提交
87
	if err != nil {
88
		t.Log(err)
xurime's avatar
xurime 已提交
89
	}
xurime's avatar
xurime 已提交
90

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