summaryrefslogtreecommitdiff
path: root/styles.go
diff options
context:
space:
mode:
Diffstat (limited to 'styles.go')
-rw-r--r--styles.go19
1 files changed, 14 insertions, 5 deletions
diff --git a/styles.go b/styles.go
index 15de5f1..f7d00e1 100644
--- a/styles.go
+++ b/styles.go
@@ -1057,6 +1057,15 @@ func (f *File) styleSheetWriter() {
}
}
+// themeWriter provides a function to save xl/theme/theme1.xml after serialize
+// structure.
+func (f *File) themeWriter() {
+ if f.Theme != nil {
+ output, _ := xml.Marshal(f.Theme)
+ f.saveFileList(defaultXMLPathTheme, f.replaceNameSpaceBytes(defaultXMLPathTheme, output))
+ }
+}
+
// sharedStringsWriter provides a function to save xl/sharedStrings.xml after
// serialize structure.
func (f *File) sharedStringsWriter() {
@@ -3311,11 +3320,11 @@ func getPaletteColor(color string) string {
// themeReader provides a function to get the pointer to the xl/theme/theme1.xml
// structure after deserialization.
func (f *File) themeReader() *xlsxTheme {
- var (
- err error
- theme xlsxTheme
- )
- if err = f.xmlNewDecoder(bytes.NewReader(namespaceStrictToTransitional(f.readXML("xl/theme/theme1.xml")))).
+ if _, ok := f.Pkg.Load(defaultXMLPathTheme); !ok {
+ return nil
+ }
+ theme := xlsxTheme{XMLNSa: NameSpaceDrawingML.Value, XMLNSr: SourceRelationship.Value}
+ if err := f.xmlNewDecoder(bytes.NewReader(namespaceStrictToTransitional(f.readXML(defaultXMLPathTheme)))).
Decode(&theme); err != nil && err != io.EOF {
log.Printf("xml decoder error: %s", err)
}