summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--comment.go23
-rw-r--r--comment_test.go6
2 files changed, 18 insertions, 11 deletions
diff --git a/comment.go b/comment.go
index ac22ec7..a75ea7f 100644
--- a/comment.go
+++ b/comment.go
@@ -156,17 +156,20 @@ func (f *File) DeleteComment(sheet, cell string) (err error) {
}
commentsXML = strings.TrimPrefix(commentsXML, "/")
if comments := f.commentsReader(commentsXML); comments != nil {
- for i, cmt := range comments.CommentList.Comment {
- if cmt.Ref == cell {
- if len(comments.CommentList.Comment) > 1 {
- comments.CommentList.Comment = append(
- comments.CommentList.Comment[:i],
- comments.CommentList.Comment[i+1:]...,
- )
- continue
- }
- comments.CommentList.Comment = nil
+ for i := 0; i < len(comments.CommentList.Comment); i++ {
+ cmt := comments.CommentList.Comment[i]
+ if cmt.Ref != cell {
+ continue
+ }
+ if len(comments.CommentList.Comment) > 1 {
+ comments.CommentList.Comment = append(
+ comments.CommentList.Comment[:i],
+ comments.CommentList.Comment[i+1:]...,
+ )
+ i--
+ continue
}
+ comments.CommentList.Comment = nil
}
f.Comments[commentsXML] = comments
}
diff --git a/comment_test.go b/comment_test.go
index 64e9968..0d1e039 100644
--- a/comment_test.go
+++ b/comment_test.go
@@ -55,15 +55,19 @@ func TestDeleteComment(t *testing.T) {
assert.NoError(t, f.AddComment("Sheet2", "A40", `{"author":"Excelize: ","text":"This is a comment1."}`))
assert.NoError(t, f.AddComment("Sheet2", "A41", `{"author":"Excelize: ","text":"This is a comment2."}`))
assert.NoError(t, f.AddComment("Sheet2", "C41", `{"author":"Excelize: ","text":"This is a comment3."}`))
+ assert.NoError(t, f.AddComment("Sheet2", "C41", `{"author":"Excelize: ","text":"This is a comment3-1."}`))
+ assert.NoError(t, f.AddComment("Sheet2", "C42", `{"author":"Excelize: ","text":"This is a comment4."}`))
+ assert.NoError(t, f.AddComment("Sheet2", "C41", `{"author":"Excelize: ","text":"This is a comment3-2."}`))
assert.NoError(t, f.DeleteComment("Sheet2", "A40"))
- assert.EqualValues(t, 2, len(f.GetComments()["Sheet2"]))
+ assert.EqualValues(t, 5, len(f.GetComments()["Sheet2"]))
assert.EqualValues(t, len(NewFile().GetComments()), 0)
// Test delete all comments in a worksheet
assert.NoError(t, f.DeleteComment("Sheet2", "A41"))
assert.NoError(t, f.DeleteComment("Sheet2", "C41"))
+ assert.NoError(t, f.DeleteComment("Sheet2", "C42"))
assert.EqualValues(t, 0, len(f.GetComments()["Sheet2"]))
// Test delete comment on not exists worksheet
assert.EqualError(t, f.DeleteComment("SheetN", "A1"), "sheet SheetN does not exist")