summaryrefslogtreecommitdiff
path: root/table.go
diff options
context:
space:
mode:
authorxuri <xuri.me@gmail.com>2021-02-11 00:07:46 +0800
committerxuri <xuri.me@gmail.com>2021-02-11 10:54:38 +0800
commit3648335d7f45d5cf204c32345f47e8938fe86bfb (patch)
tree19d431963317f82f78b063b0a90644c3f370718c /table.go
parent3783d1d01b458a56a4de6aba4a2d10605bfbc876 (diff)
This improves compatibility for worksheet relative XML path and multi rules auto filter
Diffstat (limited to 'table.go')
-rw-r--r--table.go16
1 files changed, 8 insertions, 8 deletions
diff --git a/table.go b/table.go
index 8775929..ba8de25 100644
--- a/table.go
+++ b/table.go
@@ -348,9 +348,9 @@ func (f *File) autoFilter(sheet, ref string, refRange, col int, formatSet *forma
return fmt.Errorf("incorrect index of column '%s'", formatSet.Column)
}
- filter.FilterColumn = &xlsxFilterColumn{
+ filter.FilterColumn = append(filter.FilterColumn, &xlsxFilterColumn{
ColID: offset,
- }
+ })
re := regexp.MustCompile(`"(?:[^"]|"")*"|\S+`)
token := re.FindAllString(formatSet.Expression, -1)
if len(token) != 3 && len(token) != 7 {
@@ -372,14 +372,14 @@ func (f *File) writeAutoFilter(filter *xlsxAutoFilter, exp []int, tokens []strin
// Single equality.
var filters []*xlsxFilter
filters = append(filters, &xlsxFilter{Val: tokens[0]})
- filter.FilterColumn.Filters = &xlsxFilters{Filter: filters}
+ filter.FilterColumn[0].Filters = &xlsxFilters{Filter: filters}
} else if len(exp) == 3 && exp[0] == 2 && exp[1] == 1 && exp[2] == 2 {
// Double equality with "or" operator.
filters := []*xlsxFilter{}
for _, v := range tokens {
filters = append(filters, &xlsxFilter{Val: v})
}
- filter.FilterColumn.Filters = &xlsxFilters{Filter: filters}
+ filter.FilterColumn[0].Filters = &xlsxFilters{Filter: filters}
} else {
// Non default custom filter.
expRel := map[int]int{0: 0, 1: 2}
@@ -387,7 +387,7 @@ func (f *File) writeAutoFilter(filter *xlsxAutoFilter, exp []int, tokens []strin
for k, v := range tokens {
f.writeCustomFilter(filter, exp[expRel[k]], v)
if k == 1 {
- filter.FilterColumn.CustomFilters.And = andRel[exp[k]]
+ filter.FilterColumn[0].CustomFilters.And = andRel[exp[k]]
}
}
}
@@ -408,12 +408,12 @@ func (f *File) writeCustomFilter(filter *xlsxAutoFilter, operator int, val strin
Operator: operators[operator],
Val: val,
}
- if filter.FilterColumn.CustomFilters != nil {
- filter.FilterColumn.CustomFilters.CustomFilter = append(filter.FilterColumn.CustomFilters.CustomFilter, &customFilter)
+ if filter.FilterColumn[0].CustomFilters != nil {
+ filter.FilterColumn[0].CustomFilters.CustomFilter = append(filter.FilterColumn[0].CustomFilters.CustomFilter, &customFilter)
} else {
customFilters := []*xlsxCustomFilter{}
customFilters = append(customFilters, &customFilter)
- filter.FilterColumn.CustomFilters = &xlsxCustomFilters{CustomFilter: customFilters}
+ filter.FilterColumn[0].CustomFilters = &xlsxCustomFilters{CustomFilter: customFilters}
}
}