Comments (3)
Contributions are welcome. I need some time to clarify exactly how to support this feature.
from excelize.
I made the following adjustments and recommend providing a slice of column indexes where a
filter should be visible.
// xmlTable.go
// Table directly maps the format settings of the table.
type Table struct {
tID int
rID string
tableXML string
Range string
Name string
StyleName string
ShowColumnStripes bool
ShowFirstColumn bool
ShowHeaderRow *bool
ShowLastColumn bool
ShowRowStripes *bool
FilterColumns []int // column indexes to enable filter button
}
// table.go
_ = f.setTableColumns(sheet, !hideHeaderRow, x1, y1, x2, &t)
if hideHeaderRow {
t.AutoFilter = nil
t.HeaderRowCount = intPtr(0)
}
// add filter columns (ln 371)
if !hideHeaderRow && opts.FilterColumns != nil {
width := x2 - x1 + 1
ff := make([]*xlsxFilterColumn, width)
cc := make(map[int]bool)
for _, c := range opts.FilterColumns {
cc[c] = true
}
for i := 0; i < width; i++ {
showFilter := false
if cc[i] {
showFilter = true
}
ff[i] = &xlsxFilterColumn{
ColID: i,
HiddenButton: !showFilter,
}
}
t.AutoFilter = &xlsxAutoFilter{
Ref: ref,
FilterColumn: ff,
}
}
// main.go
// Create table.
show := true
if err = f.AddTable("Sheet2", &excelize.Table{
Name: "Table1",
Range: fmt.Sprintf("%s:%s", firstCell, currentCell),
ShowHeaderRow: &show,
FilterColumns: []int{0, 1, 2},
}); err != nil {
fmt.Println(err)
}
Outcome (no corruption errors):
from excelize.
@xuri Happy to take this and submit a PR if you feel it merits an enhancement.
from excelize.
Related Issues (20)
- How to insert new data into an existing sheet table and preserve the previous data. HOT 1
- 为什么sheet不支持区分大小写?( Why does sheet not support case sensitivity?) HOT 3
- Generated Excel files lose content partially - Error on opening HOT 5
- Parentheses in formulas get cut out when inserting new columns or rows HOT 1
- Feature request: SetRowHeight for StreamWriter HOT 1
- Tab (\t) character cannot be displayed in the generated workbook's cell HOT 1
- condition A with style ,the unstyled condition will be applied with A's style. HOT 1
- excelize按行读取内容成字符串数组导致日期格式错误 HOT 1
- The first execution of Flush() data will be written to Excel, and SetRow() after Flush() will not take effect HOT 1
- duration has -1 second HOT 2
- Excel to PDF Page Size issue HOT 1
- After adding and saving images in Excel by excelize, the GetPictureCells method cannot read any values HOT 1
- Support insert the Kingsoft WPS Office embedded image cells via the DISPIMG formula function HOT 2
- [BUG] Get Rows function HOT 1
- Count columns and rows of the worksheets. 会提供 Max row Max col 属性吗 HOT 1
- Open a Microsoft Excel sheet which been set password, in code not provide “Options” cause “zip: not a valid zip file” HOT 2
- I have 70 option datas,but can't set dropList as datavalidation HOT 1
- Remove column caused workbook corrupted HOT 1
- Font size of the header and footer doesn't work HOT 2
- sw.SetRow() Can only be called once HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from excelize.