diff options
author | xuri <xuri.me@gmail.com> | 2022-01-23 00:32:34 +0800 |
---|---|---|
committer | xuri <xuri.me@gmail.com> | 2022-01-23 00:48:26 +0800 |
commit | 3ee3c38f9c63de3782fad21aae9c05ee0530fc32 (patch) | |
tree | 153928b23d79d259f6030cd902c836162f84e345 /file.go | |
parent | 74f6ea94eae45c8fb89a23cc94802e57ce279a84 (diff) |
Fix file corrupted in some cases, check file extension and format code
Fix file corrupted when save as in XLAM / XLSM / XLTM / XLTX extension in some case
New exported error ErrWorkbookExt has been added, and check file extension on save the workbook
Format source code with `gofumpt`
Diffstat (limited to 'file.go')
-rw-r--r-- | file.go | 11 |
1 files changed, 11 insertions, 0 deletions
@@ -70,6 +70,17 @@ func (f *File) SaveAs(name string, opt ...Options) error { return ErrMaxFileNameLength } f.Path = name + contentType, ok := map[string]string{ + ".xlam": ContentTypeAddinMacro, + ".xlsm": ContentTypeMacro, + ".xlsx": ContentTypeSheetML, + ".xltm": ContentTypeTemplateMacro, + ".xltx": ContentTypeTemplate, + }[filepath.Ext(f.Path)] + if !ok { + return ErrWorkbookExt + } + f.setContentTypePartProjectExtensions(contentType) file, err := os.OpenFile(filepath.Clean(name), os.O_WRONLY|os.O_TRUNC|os.O_CREATE, 0600) if err != nil { return err |