forked from p30928647/excelize
This closes #1213, fix get incorrect rich text value caused by missing cell type checking
This commit is contained in:
parent
df91b34a3f
commit
0f93bd23c9
6
cell.go
6
cell.go
|
@ -764,7 +764,7 @@ func (f *File) GetCellRichText(sheet, cell string) (runs []RichTextRun, err erro
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
siIdx, err := strconv.Atoi(cellData.V)
|
siIdx, err := strconv.Atoi(cellData.V)
|
||||||
if nil != err {
|
if err != nil || cellData.T != "s" {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
sst := f.sharedStringsReader()
|
sst := f.sharedStringsReader()
|
||||||
|
@ -776,7 +776,7 @@ func (f *File) GetCellRichText(sheet, cell string) (runs []RichTextRun, err erro
|
||||||
run := RichTextRun{
|
run := RichTextRun{
|
||||||
Text: v.T.Val,
|
Text: v.T.Val,
|
||||||
}
|
}
|
||||||
if nil != v.RPr {
|
if v.RPr != nil {
|
||||||
font := Font{Underline: "none"}
|
font := Font{Underline: "none"}
|
||||||
font.Bold = v.RPr.B != nil
|
font.Bold = v.RPr.B != nil
|
||||||
font.Italic = v.RPr.I != nil
|
font.Italic = v.RPr.I != nil
|
||||||
|
@ -793,7 +793,7 @@ func (f *File) GetCellRichText(sheet, cell string) (runs []RichTextRun, err erro
|
||||||
font.Size = *v.RPr.Sz.Val
|
font.Size = *v.RPr.Sz.Val
|
||||||
}
|
}
|
||||||
font.Strike = v.RPr.Strike != nil
|
font.Strike = v.RPr.Strike != nil
|
||||||
if nil != v.RPr.Color {
|
if v.RPr.Color != nil {
|
||||||
font.Color = strings.TrimPrefix(v.RPr.Color.RGB, "FF")
|
font.Color = strings.TrimPrefix(v.RPr.Color.RGB, "FF")
|
||||||
}
|
}
|
||||||
run.Font = &font
|
run.Font = &font
|
||||||
|
|
|
@ -502,8 +502,13 @@ func TestGetCellRichText(t *testing.T) {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
assert.NoError(t, f.SetCellRichText("Sheet1", "A1", runsSource))
|
assert.NoError(t, f.SetCellRichText("Sheet1", "A1", runsSource))
|
||||||
|
assert.NoError(t, f.SetCellValue("Sheet1", "A2", false))
|
||||||
|
|
||||||
runs, err := f.GetCellRichText("Sheet1", "A1")
|
runs, err := f.GetCellRichText("Sheet1", "A2")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.Equal(t, []RichTextRun(nil), runs)
|
||||||
|
|
||||||
|
runs, err = f.GetCellRichText("Sheet1", "A1")
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
assert.Equal(t, runsSource[0].Text, runs[0].Text)
|
assert.Equal(t, runsSource[0].Text, runs[0].Text)
|
||||||
|
|
Loading…
Reference in New Issue