From de6e075713069bd71243930756ae6f707babf44e Mon Sep 17 00:00:00 2001 From: Ri Xu Date: Sun, 12 Mar 2017 20:38:26 +0800 Subject: Performance improvement --- file.go | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'file.go') 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 { -- cgit v1.2.1