Browse Source

Include theme1.xml in workbook rels.

Geoffrey J. Teale 11 years ago
parent
commit
3db1f27860
3 changed files with 12 additions and 3 deletions
  1. 2 1
      file_test.go
  2. 8 1
      lib.go
  3. 2 1
      lib_test.go

+ 2 - 1
file_test.go

@@ -674,7 +674,8 @@ func (l *FileSuite) TestMarshalFile(c *C) {
     <Relationship Id="rId1" Target="worksheets/sheet1.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet"></Relationship>
     <Relationship Id="rId2" Target="worksheets/sheet2.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet"></Relationship>
     <Relationship Id="rId3" Target="sharedStrings.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings"></Relationship>
-    <Relationship Id="rId4" Target="styles.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles"></Relationship>
+    <Relationship Id="rId4" Target="theme/theme1.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme"></Relationship>
+    <Relationship Id="rId5" Target="styles.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles"></Relationship>
   </Relationships>`
 	c.Assert(parts["xl/_rels/workbook.xml.rels"], Equals, expectedXLSXWorkbookRels)
 

+ 8 - 1
lib.go

@@ -548,7 +548,7 @@ type WorkBookRels map[string]string
 func (w *WorkBookRels) MakeXLSXWorkbookRels() xlsxWorkbookRels {
 	relCount := len(*w)
 	xWorkbookRels := xlsxWorkbookRels{}
-	xWorkbookRels.Relationships = make([]xlsxWorkbookRelation, relCount+2)
+	xWorkbookRels.Relationships = make([]xlsxWorkbookRelation, relCount+3)
 	for k, v := range *w {
 		index, err := strconv.Atoi(k[3:])
 		if err != nil {
@@ -567,6 +567,13 @@ func (w *WorkBookRels) MakeXLSXWorkbookRels() xlsxWorkbookRels {
 		Target: "sharedStrings.xml",
 		Type:   "http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings"}
 
+	relCount++
+	sheetId = fmt.Sprintf("rId%d", relCount)
+	xWorkbookRels.Relationships[relCount-1] = xlsxWorkbookRelation{
+		Id:     sheetId,
+		Target: "theme/theme1.xml",
+		Type:   "http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme"}
+
 	relCount++
 	sheetId = fmt.Sprintf("rId%d", relCount)
 	xWorkbookRels.Relationships[relCount-1] = xlsxWorkbookRelation{

+ 2 - 1
lib_test.go

@@ -35,7 +35,8 @@ func (l *LibSuite) TestWorkBookRelsMarshal(c *C) {
   <Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
     <Relationship Id="rId1" Target="worksheets/sheet.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet"></Relationship>
     <Relationship Id="rId2" Target="sharedStrings.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings"></Relationship>
-    <Relationship Id="rId3" Target="styles.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles"></Relationship>
+    <Relationship Id="rId3" Target="theme/theme1.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme"></Relationship>
+    <Relationship Id="rId4" Target="styles.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles"></Relationship>
   </Relationships>`
 	xRels := rels.MakeXLSXWorkbookRels()