Skip to content

Commit 1f3b461

Browse files
authored
Merge pull request #792 from neddy299/fix/autofilter-for-excel
Fix Excel opening files with AutoFilter data
2 parents cab4e03 + 5b2ba9d commit 1f3b461

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

xmlWorksheet.go

+10-1
Original file line numberDiff line numberDiff line change
@@ -595,7 +595,7 @@ func emitStructAsXML(v reflect.Value, name, xmlNS string) (xmlwriter.Elem, error
595595
Name: "xmlns",
596596
Value: xmlNS,
597597
})
598-
case "SheetData", "MergeCells", "DataValidations":
598+
case "SheetData", "MergeCells", "DataValidations", "AutoFilter":
599599
// Skip SheetData here, we explicitly generate this in writeXML below
600600
// Microsoft Excel considers a mergeCells element before a sheetData element to be
601601
// an error and will fail to open the document, so we'll be back with this data
@@ -773,6 +773,15 @@ func (worksheet *xlsxWorksheet) WriteXML(xw *xmlwriter.Writer, s *Sheet, styles
773773
return err
774774
}
775775
}
776+
if worksheet.AutoFilter != nil {
777+
autoFilter, err := emitStructAsXML(reflect.ValueOf(worksheet.AutoFilter), "autoFilter", "")
778+
if err != nil {
779+
return err
780+
}
781+
if err := xw.Write(autoFilter); err != nil {
782+
return err
783+
}
784+
}
776785
return nil
777786
}(),
778787
xw.EndElem(output.Name),

0 commit comments

Comments
 (0)