summaryrefslogtreecommitdiff
path: root/file.go
diff options
context:
space:
mode:
authorRi Xu <xuri.me@gmail.com>2017-03-12 20:38:26 +0800
committerRi Xu <xuri.me@gmail.com>2017-03-12 20:38:26 +0800
commitde6e075713069bd71243930756ae6f707babf44e (patch)
treecc1b149da1b13dc3d4bc18712296c9b8d94e96fd /file.go
parent5384756d6483ba4bda294d47461c8df8b25c7a9c (diff)
Performance improvement
Diffstat (limited to 'file.go')
-rw-r--r--file.go14
1 files changed, 13 insertions, 1 deletions
diff --git a/file.go b/file.go
index 17a8bba..aea7f8e 100644
--- a/file.go
+++ b/file.go
@@ -3,6 +3,7 @@ package excelize
import (
"archive/zip"
"bytes"
+ "encoding/xml"
"fmt"
"io"
"os"
@@ -25,7 +26,8 @@ func CreateFile() *File {
file["xl/workbook.xml"] = templateWorkbook
file["[Content_Types].xml"] = templateContentTypes
return &File{
- XLSX: file,
+ XLSX: file,
+ Sheet: make(map[string]*xlsxWorksheet),
}
}
@@ -52,6 +54,16 @@ func (f *File) WriteTo(name string) error {
func (f *File) Write(w io.Writer) error {
buf := new(bytes.Buffer)
zw := zip.NewWriter(buf)
+ for path, sheet := range f.Sheet {
+ if sheet == nil {
+ continue
+ }
+ output, err := xml.Marshal(sheet)
+ if err != nil {
+ return err
+ }
+ f.saveFileList(path, replaceWorkSheetsRelationshipsNameSpace(string(output)))
+ }
for path, content := range f.XLSX {
fi, err := zw.Create(path)
if err != nil {