summaryrefslogtreecommitdiff
path: root/picture.go
diff options
context:
space:
mode:
Diffstat (limited to 'picture.go')
-rw-r--r--picture.go35
1 files changed, 18 insertions, 17 deletions
diff --git a/picture.go b/picture.go
index 2ad9db2..131b15c 100644
--- a/picture.go
+++ b/picture.go
@@ -177,27 +177,25 @@ func (f *File) addSheetRelationships(sheet, relType, target, targetMode string)
name = strings.ToLower(sheet) + ".xml"
}
var rels = "xl/worksheets/_rels/" + strings.TrimPrefix(name, "xl/worksheets/") + ".rels"
- var sheetRels xlsxWorkbookRels
+ sheetRels := f.workSheetRelsReader(rels)
+ if sheetRels == nil {
+ sheetRels = &xlsxWorkbookRels{}
+ }
var rID = 1
var ID bytes.Buffer
ID.WriteString("rId")
ID.WriteString(strconv.Itoa(rID))
- _, ok = f.XLSX[rels]
- if ok {
- ID.Reset()
- _ = xml.Unmarshal(namespaceStrictToTransitional(f.readXML(rels)), &sheetRels)
- rID = len(sheetRels.Relationships) + 1
- ID.WriteString("rId")
- ID.WriteString(strconv.Itoa(rID))
- }
+ ID.Reset()
+ rID = len(sheetRels.Relationships) + 1
+ ID.WriteString("rId")
+ ID.WriteString(strconv.Itoa(rID))
sheetRels.Relationships = append(sheetRels.Relationships, xlsxWorkbookRelation{
ID: ID.String(),
Type: relType,
Target: target,
TargetMode: targetMode,
})
- output, _ := xml.Marshal(sheetRels)
- f.saveFileList(rels, output)
+ f.WorkSheetRels[rels] = sheetRels
return rID
}
@@ -210,15 +208,16 @@ func (f *File) deleteSheetRelationships(sheet, rID string) {
name = strings.ToLower(sheet) + ".xml"
}
var rels = "xl/worksheets/_rels/" + strings.TrimPrefix(name, "xl/worksheets/") + ".rels"
- var sheetRels xlsxWorkbookRels
- _ = xml.Unmarshal(namespaceStrictToTransitional(f.readXML(rels)), &sheetRels)
+ sheetRels := f.workSheetRelsReader(rels)
+ if sheetRels == nil {
+ sheetRels = &xlsxWorkbookRels{}
+ }
for k, v := range sheetRels.Relationships {
if v.ID == rID {
sheetRels.Relationships = append(sheetRels.Relationships[:k], sheetRels.Relationships[k+1:]...)
}
}
- output, _ := xml.Marshal(sheetRels)
- f.saveFileList(rels, output)
+ f.WorkSheetRels[rels] = sheetRels
}
// addSheetLegacyDrawing provides a function to add legacy drawing element to
@@ -441,8 +440,10 @@ func (f *File) getSheetRelationshipsTargetByID(sheet, rID string) string {
name = strings.ToLower(sheet) + ".xml"
}
var rels = "xl/worksheets/_rels/" + strings.TrimPrefix(name, "xl/worksheets/") + ".rels"
- var sheetRels xlsxWorkbookRels
- _ = xml.Unmarshal(namespaceStrictToTransitional(f.readXML(rels)), &sheetRels)
+ sheetRels := f.workSheetRelsReader(rels)
+ if sheetRels == nil {
+ sheetRels = &xlsxWorkbookRels{}
+ }
for _, v := range sheetRels.Relationships {
if v.ID == rID {
return v.Target