summaryrefslogtreecommitdiff
path: root/file.go
diff options
context:
space:
mode:
Diffstat (limited to 'file.go')
-rw-r--r--file.go18
1 files changed, 17 insertions, 1 deletions
diff --git a/file.go b/file.go
index 34ec359..bd05bc4 100644
--- a/file.go
+++ b/file.go
@@ -64,7 +64,7 @@ func (f *File) Save() error {
// SaveAs provides a function to create or update to an xlsx file at the
// provided path.
-func (f *File) SaveAs(name string) error {
+func (f *File) SaveAs(name string, opt ...Options) error {
if len(name) > FileNameLength {
return errors.New("file name length exceeds maximum limit")
}
@@ -73,6 +73,9 @@ func (f *File) SaveAs(name string) error {
return err
}
defer file.Close()
+ for _, o := range opt {
+ f.options = &o
+ }
return f.Write(file)
}
@@ -118,5 +121,18 @@ func (f *File) WriteToBuffer() (*bytes.Buffer, error) {
return buf, err
}
}
+
+ if f.options != nil {
+ if err := zw.Close(); err != nil {
+ return buf, err
+ }
+ b, err := Encrypt(buf.Bytes(), f.options)
+ if err != nil {
+ return buf, err
+ }
+ buf.Reset()
+ buf.Write(b)
+ return buf, nil
+ }
return buf, zw.Close()
}