diff options
author | Ri Xu <xuri.me@gmail.com> | 2017-06-15 11:03:29 +0800 |
---|---|---|
committer | Ri Xu <xuri.me@gmail.com> | 2017-06-15 11:03:29 +0800 |
commit | 9928bbc7c80dc9b3ab6599b9e472c2e00936ae84 (patch) | |
tree | 1813d99b5f7b1582fec2939f7c51ce8cb58c584c /col.go | |
parent | a9f671d98f85585e7f77c73554f3c1ad897c4fd1 (diff) |
- New functions `GetColVisible()` and `SetColVisible()` added, relate issue #61;
- go test updated;
- Fix typo
Diffstat (limited to 'col.go')
-rw-r--r-- | col.go | 53 |
1 files changed, 53 insertions, 0 deletions
@@ -13,6 +13,59 @@ const ( EMU int = 9525 ) +// GetColVisible provides a function to get visible of a single column by given +// worksheet index and column name. For example, get visible state of column D +// in Sheet1: +// +// xlsx.GetColVisible("Sheet1", "D") +// +func (f *File) GetColVisible(sheet, column string) bool { + xlsx := f.workSheetReader(sheet) + col := titleToNumber(strings.ToUpper(column)) + 1 + visible := true + if xlsx.Cols == nil { + return visible + } + for _, c := range xlsx.Cols.Col { + if c.Min <= col && col <= c.Max { + visible = !c.Hidden + } + } + return visible +} + +// SetColVisible provides a function to set visible of a single column by given +// worksheet index and column name. For example, hide column D in Sheet1: +// +// xlsx.SetColVisible("Sheet1", "D", false) +// +func (f *File) SetColVisible(sheet, column string, visible bool) { + xlsx := f.workSheetReader(sheet) + c := titleToNumber(strings.ToUpper(column)) + 1 + col := xlsxCol{ + Min: c, + Max: c, + Hidden: !visible, + CustomWidth: true, + } + if xlsx.Cols == nil { + cols := xlsxCols{} + cols.Col = append(cols.Col, col) + xlsx.Cols = &cols + return + } + for _, v := range xlsx.Cols.Col { + if v.Min <= c && c <= v.Max { + col = v + } + } + col.Min = c + col.Max = c + col.Hidden = !visible + col.CustomWidth = true + xlsx.Cols.Col = append(xlsx.Cols.Col, col) +} + // SetColWidth provides function to set the width of a single column or multiple // columns. For example: // |