summaryrefslogtreecommitdiff
path: root/cell_test.go
diff options
context:
space:
mode:
authorxuri <xuri.me@gmail.com>2020-11-18 22:08:40 +0800
committerxuri <xuri.me@gmail.com>2020-11-18 22:08:40 +0800
commit92c8626f814c3bcb91e30f83de8e68c9b8bb9a5f (patch)
tree86fec139f87ffbbad0ea3f136a622beb1c189ac2 /cell_test.go
parent2be4bfd410744201f96e79804ef644d26c47f49f (diff)
Fixed #732, support single line with repeated row element in the sheet data
Diffstat (limited to 'cell_test.go')
-rw-r--r--cell_test.go21
1 files changed, 20 insertions, 1 deletions
diff --git a/cell_test.go b/cell_test.go
index f707256..c934876 100644
--- a/cell_test.go
+++ b/cell_test.go
@@ -136,8 +136,9 @@ func TestSetCellBool(t *testing.T) {
func TestGetCellValue(t *testing.T) {
// Test get cell value without r attribute of the row.
f := NewFile()
+ sheetData := `<worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"><sheetData>%s</sheetData></worksheet>`
delete(f.Sheet, "xl/worksheets/sheet1.xml")
- f.XLSX["xl/worksheets/sheet1.xml"] = []byte(`<worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"><sheetData><row r="3"><c t="str"><v>A3</v></c></row><row><c t="str"><v>A4</v></c><c t="str"><v>B4</v></c></row><row r="7"><c t="str"><v>A7</v></c><c t="str"><v>B7</v></c></row><row><c t="str"><v>A8</v></c><c t="str"><v>B8</v></c></row></sheetData></worksheet>`)
+ f.XLSX["xl/worksheets/sheet1.xml"] = []byte(fmt.Sprintf(sheetData, `<row r="3"><c t="str"><v>A3</v></c></row><row><c t="str"><v>A4</v></c><c t="str"><v>B4</v></c></row><row r="7"><c t="str"><v>A7</v></c><c t="str"><v>B7</v></c></row><row><c t="str"><v>A8</v></c><c t="str"><v>B8</v></c></row>`))
f.checked = nil
cells := []string{"A3", "A4", "B4", "A7", "B7"}
rows, err := f.GetRows("Sheet1")
@@ -151,6 +152,24 @@ func TestGetCellValue(t *testing.T) {
cols, err := f.GetCols("Sheet1")
assert.Equal(t, [][]string{{"", "", "A3", "A4", "", "", "A7", "A8"}, {"", "", "", "B4", "", "", "B7", "B8"}}, cols)
assert.NoError(t, err)
+ delete(f.Sheet, "xl/worksheets/sheet1.xml")
+ f.XLSX["xl/worksheets/sheet1.xml"] = []byte(fmt.Sprintf(sheetData, `<row r="2"><c r="A2" t="str"><v>A2</v></c></row><row r="2"><c r="B2" t="str"><v>B2</v></c></row>`))
+ f.checked = nil
+ cell, err := f.GetCellValue("Sheet1", "A2")
+ assert.Equal(t, "A2", cell)
+ assert.NoError(t, err)
+ delete(f.Sheet, "xl/worksheets/sheet1.xml")
+ f.XLSX["xl/worksheets/sheet1.xml"] = []byte(fmt.Sprintf(sheetData, `<row r="2"><c r="A2" t="str"><v>A2</v></c></row><row r="2"><c r="B2" t="str"><v>B2</v></c></row>`))
+ f.checked = nil
+ rows, err = f.GetRows("Sheet1")
+ assert.Equal(t, [][]string{nil, {"A2", "B2"}}, rows)
+ assert.NoError(t, err)
+ delete(f.Sheet, "xl/worksheets/sheet1.xml")
+ f.XLSX["xl/worksheets/sheet1.xml"] = []byte(fmt.Sprintf(sheetData, `<row r="1"><c r="A1" t="str"><v>A1</v></c></row><row r="1"><c r="B1" t="str"><v>B1</v></c></row>`))
+ f.checked = nil
+ rows, err = f.GetRows("Sheet1")
+ assert.Equal(t, [][]string{{"A1", "B1"}}, rows)
+ assert.NoError(t, err)
}
func TestGetCellFormula(t *testing.T) {