summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorxuri <xuri.me@gmail.com>2021-04-27 04:46:51 +0000
committerxuri <xuri.me@gmail.com>2021-04-27 04:46:51 +0000
commita13ef5545ec79108477910346ae4cab82ab8bbda (patch)
tree72c042255c94536c6c868eb5321ee948296a78aa
parente5c5ecc379434b7ef4ffcbb9dcf58526cafda66a (diff)
This closes #825, closes #829, closes #830, fix issue when get and add comments on multi authors
-rw-r--r--comment.go21
-rw-r--r--xmlComments.go4
2 files changed, 12 insertions, 13 deletions
diff --git a/comment.go b/comment.go
index 705b957..b05f308 100644
--- a/comment.go
+++ b/comment.go
@@ -43,15 +43,15 @@ func (f *File) GetComments() (comments map[string][]Comment) {
if target == "" {
continue
}
- if !filepath.IsAbs(target) {
+ if !strings.HasPrefix(target, "/") {
target = "xl" + strings.TrimPrefix(target, "..")
}
if d := f.commentsReader(strings.TrimPrefix(target, "/")); d != nil {
sheetComments := []Comment{}
for _, comment := range d.CommentList.Comment {
sheetComment := Comment{}
- if comment.AuthorID < len(d.Authors) {
- sheetComment.Author = d.Authors[comment.AuthorID].Author
+ if comment.AuthorID < len(d.Authors.Author) {
+ sheetComment.Author = d.Authors.Author[comment.AuthorID]
}
sheetComment.Ref = comment.Ref
sheetComment.AuthorID = comment.AuthorID
@@ -250,20 +250,19 @@ func (f *File) addComment(commentsXML, cell string, formatSet *formatComment) {
t = t[0:32512]
}
comments := f.commentsReader(commentsXML)
+ authorID := 0
if comments == nil {
- comments = &xlsxComments{
- Authors: []xlsxAuthor{
- {
- Author: formatSet.Author,
- },
- },
- }
+ comments = &xlsxComments{Authors: xlsxAuthor{Author: []string{formatSet.Author}}}
+ }
+ if inStrSlice(comments.Authors.Author, formatSet.Author) == -1 {
+ comments.Authors.Author = append(comments.Authors.Author, formatSet.Author)
+ authorID = len(comments.Authors.Author) - 1
}
defaultFont := f.GetDefaultFont()
bold := ""
cmt := xlsxComment{
Ref: cell,
- AuthorID: 0,
+ AuthorID: authorID,
Text: xlsxText{
R: []xlsxR{
{
diff --git a/xmlComments.go b/xmlComments.go
index e39fb24..7965c86 100644
--- a/xmlComments.go
+++ b/xmlComments.go
@@ -24,7 +24,7 @@ import "encoding/xml"
// something special about the cell.
type xlsxComments struct {
XMLName xml.Name `xml:"http://schemas.openxmlformats.org/spreadsheetml/2006/main comments"`
- Authors []xlsxAuthor `xml:"authors"`
+ Authors xlsxAuthor `xml:"authors"`
CommentList xlsxCommentList `xml:"commentList"`
}
@@ -33,7 +33,7 @@ type xlsxComments struct {
// have an author. The maximum length of the author string is an implementation
// detail, but a good guideline is 255 chars.
type xlsxAuthor struct {
- Author string `xml:"author"`
+ Author []string `xml:"author"`
}
// xlsxCommentList (List of Comments) directly maps the xlsxCommentList element.