From 5b2ba9d16698a5128dda615630c99752e3227395 Mon Sep 17 00:00:00 2001 From: neddy299 Date: Wed, 3 Jan 2024 20:39:09 +0000 Subject: [PATCH] Fix Excel opening files with AutoFilter data --- xmlWorksheet.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/xmlWorksheet.go b/xmlWorksheet.go index 16ddb7df..4cc92b1a 100644 --- a/xmlWorksheet.go +++ b/xmlWorksheet.go @@ -595,7 +595,7 @@ func emitStructAsXML(v reflect.Value, name, xmlNS string) (xmlwriter.Elem, error Name: "xmlns", Value: xmlNS, }) - case "SheetData", "MergeCells", "DataValidations": + case "SheetData", "MergeCells", "DataValidations", "AutoFilter": // Skip SheetData here, we explicitly generate this in writeXML below // Microsoft Excel considers a mergeCells element before a sheetData element to be // 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 return err } } + if worksheet.AutoFilter != nil { + autoFilter, err := emitStructAsXML(reflect.ValueOf(worksheet.AutoFilter), "autoFilter", "") + if err != nil { + return err + } + if err := xw.Write(autoFilter); err != nil { + return err + } + } return nil }(), xw.EndElem(output.Name),