From b7fece51736977e7d84aca30ecce7f6b3a1251f2 Mon Sep 17 00:00:00 2001 From: xuri Date: Tue, 6 Jul 2021 00:31:04 +0800 Subject: Support concurrency add picture --- sheet.go | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'sheet.go') diff --git a/sheet.go b/sheet.go index 2b91495..3a55540 100644 --- a/sheet.go +++ b/sheet.go @@ -93,6 +93,8 @@ func (f *File) contentTypesWriter() { // the spreadsheet. func (f *File) getWorkbookPath() (path string) { if rels := f.relsReader("_rels/.rels"); rels != nil { + rels.Lock() + defer rels.Unlock() for _, rel := range rels.Relationships { if rel.Type == SourceRelationshipOfficeDocument { path = strings.TrimPrefix(rel.Target, "/") @@ -198,6 +200,8 @@ func trimCell(column []xlsxC) []xlsxC { // type of the spreadsheet. func (f *File) setContentTypes(partName, contentType string) { content := f.contentTypesReader() + content.Lock() + defer content.Unlock() content.Overrides = append(content.Overrides, xlsxOverride{ PartName: partName, ContentType: contentType, @@ -540,6 +544,8 @@ func (f *File) DeleteSheet(name string) { // relationships by given relationships ID in the file workbook.xml.rels. func (f *File) deleteSheetFromWorkbookRels(rID string) string { content := f.relsReader(f.getWorkbookRelsPath()) + content.Lock() + defer content.Unlock() for k, v := range content.Relationships { if v.ID == rID { content.Relationships = append(content.Relationships[:k], content.Relationships[k+1:]...) @@ -556,6 +562,8 @@ func (f *File) deleteSheetFromContentTypes(target string) { target = "/xl/" + target } content := f.contentTypesReader() + content.Lock() + defer content.Unlock() for k, v := range content.Overrides { if v.PartName == target { content.Overrides = append(content.Overrides[:k], content.Overrides[k+1:]...) -- cgit v1.2.1