summaryrefslogtreecommitdiff
path: root/col.go
diff options
context:
space:
mode:
authorRi Xu <xuri.me@gmail.com>2017-06-15 11:03:29 +0800
committerRi Xu <xuri.me@gmail.com>2017-06-15 11:03:29 +0800
commit9928bbc7c80dc9b3ab6599b9e472c2e00936ae84 (patch)
tree1813d99b5f7b1582fec2939f7c51ce8cb58c584c /col.go
parenta9f671d98f85585e7f77c73554f3c1ad897c4fd1 (diff)
- New functions `GetColVisible()` and `SetColVisible()` added, relate issue #61;
- go test updated; - Fix typo
Diffstat (limited to 'col.go')
-rw-r--r--col.go53
1 files changed, 53 insertions, 0 deletions
diff --git a/col.go b/col.go
index cb1c3b4..66e28b8 100644
--- a/col.go
+++ b/col.go
@@ -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:
//