Skip to content

Commit 055cfd0

Browse files
committed
add empty sharedStrings.xml file
There should be no need, but it might help some readers.
1 parent 54ef0d5 commit 055cfd0

File tree

4 files changed

+37
-5
lines changed

4 files changed

+37
-5
lines changed

contenttypes.go

+6-5
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,13 @@ import (
66
)
77

88
func writeContentTypes(fh io.Writer, sheetCount int) error {
9-
fh.Write([]byte(`<?xml version="1.0" encoding="UTF-8"?>
9+
fh.Write([]byte(`<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
1010
<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">
11-
<Override PartName="/_rels/.rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"></Override>
12-
<Override PartName="/xl/_rels/workbook.xml.rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"></Override>
13-
<Override PartName="/xl/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml"></Override>
14-
<Override PartName="/xl/workbook.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"></Override>
11+
<Override PartName="/_rels/.rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/>
12+
<Override PartName="/xl/_rels/workbook.xml.rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/>
13+
<Override PartName="/xl/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml"/>
14+
<Override PartName="/xl/workbook.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"/>
15+
<Override PartName="/xl/sharedStrings.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml"/>
1516
`))
1617
for i := 0; i < sheetCount; i++ {
1718
fmt.Fprintf(fh, `<Override PartName="/xl/worksheets/sheet%d.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml"></Override>`,

relations.go

+5
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,11 @@ func writeWorkbookRelations(fh io.Writer, sheetTitles []string) error {
3636
Target: "/xl/styles.xml",
3737
Type: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles",
3838
},
39+
{
40+
ID: "shared1",
41+
Target: "/xl/sharedStrings.xml",
42+
Type: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings",
43+
},
3944
}
4045
for i := range sheetTitles {
4146
rels = append(rels, relationship{

sharedstrings.go

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package streamxlsx
2+
3+
import (
4+
"io"
5+
)
6+
7+
// we don't use shared strings, but we make an empty file just in case some
8+
// excel version expects one
9+
func writeSharedStrings(fh io.Writer) error {
10+
_, err := fh.Write([]byte(`<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
11+
<sst xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" count="0" uniqueCount="0"></sst>
12+
`))
13+
return err
14+
}

streamxlsx.go

+12
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,9 @@ func (s *StreamXLSX) Close() error {
152152
if err := s.writeStylesheet(); err != nil {
153153
return err
154154
}
155+
if err := s.writeSharedStrings(); err != nil {
156+
return err
157+
}
155158
if err := s.writeWorkbookRelations(); err != nil {
156159
return err
157160
}
@@ -201,6 +204,15 @@ func (s *StreamXLSX) writeStylesheet() error {
201204
return writeStylesheet(fh, s.Styles)
202205
}
203206

207+
func (s *StreamXLSX) writeSharedStrings() error {
208+
filename := "xl/sharedStrings.xml"
209+
fh, err := s.zip.Create(filename)
210+
if err != nil {
211+
return err
212+
}
213+
return writeSharedStrings(fh)
214+
}
215+
204216
func (s *StreamXLSX) writeRelations() error {
205217
filename := "_rels/.rels"
206218
fh, err := s.zip.Create(filename)

0 commit comments

Comments
 (0)