| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- package excelize
- import (
- "path/filepath"
- "testing"
- "github.com/stretchr/testify/assert"
- )
- func TestGetMergeCells(t *testing.T) {
- wants := []struct {
- value string
- start string
- end string
- }{{
- value: "A1",
- start: "A1",
- end: "B1",
- }, {
- value: "A2",
- start: "A2",
- end: "A3",
- }, {
- value: "A4",
- start: "A4",
- end: "B5",
- }, {
- value: "A7",
- start: "A7",
- end: "C10",
- }}
- f, err := OpenFile(filepath.Join("test", "MergeCell.xlsx"))
- if !assert.NoError(t, err) {
- t.FailNow()
- }
- sheet1 := f.GetSheetName(1)
- mergeCells, err := f.GetMergeCells(sheet1)
- if !assert.Len(t, mergeCells, len(wants)) {
- t.FailNow()
- }
- assert.NoError(t, err)
- for i, m := range mergeCells {
- assert.Equal(t, wants[i].value, m.GetCellValue())
- assert.Equal(t, wants[i].start, m.GetStartAxis())
- assert.Equal(t, wants[i].end, m.GetEndAxis())
- }
- // Test get merged cells on not exists worksheet.
- _, err = f.GetMergeCells("SheetN")
- assert.EqualError(t, err, "sheet SheetN is not exist")
- }
- func TestUnmergeCell(t *testing.T) {
- f, err := OpenFile(filepath.Join("test", "MergeCell.xlsx"))
- if !assert.NoError(t, err) {
- t.FailNow()
- }
- sheet1 := f.GetSheetName(1)
- xlsx, err := f.workSheetReader(sheet1)
- assert.NoError(t, err)
- mergeCellNum := len(xlsx.MergeCells.Cells)
- assert.EqualError(t, f.UnmergeCell("Sheet1", "A", "A"), `cannot convert cell "A" to coordinates: invalid cell name "A"`)
- // unmerge the mergecell that contains A1
- err = f.UnmergeCell(sheet1, "A1", "A1")
- assert.NoError(t, err)
- if len(xlsx.MergeCells.Cells) != mergeCellNum-1 {
- t.FailNow()
- }
- // unmerge area A7:D3(A3:D7)
- // this will unmerge all since this area overlaps with all others
- err = f.UnmergeCell(sheet1, "D7", "A3")
- assert.NoError(t, err)
- if len(xlsx.MergeCells.Cells) != 0 {
- t.FailNow()
- }
- // Test unmerged area on not exists worksheet.
- err = f.UnmergeCell("SheetN", "A1", "A1")
- assert.EqualError(t, err, "sheet SheetN is not exist")
- }
|