summaryrefslogtreecommitdiff
path: root/file.go
diff options
context:
space:
mode:
authorxuri <xuri.me@gmail.com>2022-01-23 00:32:34 +0800
committerxuri <xuri.me@gmail.com>2022-01-23 00:48:26 +0800
commit3ee3c38f9c63de3782fad21aae9c05ee0530fc32 (patch)
tree153928b23d79d259f6030cd902c836162f84e345 /file.go
parent74f6ea94eae45c8fb89a23cc94802e57ce279a84 (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.go11
1 files changed, 11 insertions, 0 deletions
diff --git a/file.go b/file.go
index 1f2b772..43d94b2 100644
--- a/file.go
+++ b/file.go
@@ -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