diff --git a/sheetview.go b/sheetview.go index 09f5789219..8a5091f710 100644 --- a/sheetview.go +++ b/sheetview.go @@ -51,14 +51,18 @@ type ( // visible cell Location of the top left visible cell in the bottom right // pane (when in Left-to-Right mode). TopLeftCell string + // ShowZeros is a SheetViewOption. It specifies a flag indicating + // whether to "show a zero in cells that have zero value". + // When using a formula to reference another cell which is empty, the referenced value becomes 0 + // when the flag is true. (Default setting is true.) + ShowZeros bool + /* TODO // ShowWhiteSpace is a SheetViewOption. It specifies a flag indicating // whether page layout view shall display margins. False means do not display // left, right, top (header), and bottom (footer) margins (even when there is // data in the header or footer). ShowWhiteSpace bool - // ShowZeros is a SheetViewOption. - ShowZeros bool // WindowProtection is a SheetViewOption. WindowProtection bool */ @@ -106,6 +110,14 @@ func (o *ShowGridLines) getSheetViewOption(view *xlsxSheetView) { *o = ShowGridLines(defaultTrue(view.ShowGridLines)) // Excel default: true } +func (o ShowZeros) setSheetViewOption(view *xlsxSheetView) { + view.ShowZeros = boolPtr(bool(o)) +} + +func (o *ShowZeros) getSheetViewOption(view *xlsxSheetView) { + *o = ShowZeros(defaultTrue(view.ShowZeros)) // Excel default: true +} + func (o ShowRowColHeaders) setSheetViewOption(view *xlsxSheetView) { view.ShowRowColHeaders = boolPtr(bool(o)) } diff --git a/sheetview_test.go b/sheetview_test.go index 2e697b8540..e45b8cec35 100644 --- a/sheetview_test.go +++ b/sheetview_test.go @@ -95,6 +95,7 @@ func ExampleFile_GetSheetViewOptions() { rightToLeft excelize.RightToLeft showFormulas excelize.ShowFormulas showGridLines excelize.ShowGridLines + showZeros excelize.ShowZeros showRowColHeaders excelize.ShowRowColHeaders zoomScale excelize.ZoomScale topLeftCell excelize.TopLeftCell @@ -105,6 +106,7 @@ func ExampleFile_GetSheetViewOptions() { &rightToLeft, &showFormulas, &showGridLines, + &showZeros, &showRowColHeaders, &zoomScale, &topLeftCell, @@ -117,6 +119,7 @@ func ExampleFile_GetSheetViewOptions() { fmt.Println("- rightToLeft:", rightToLeft) fmt.Println("- showFormulas:", showFormulas) fmt.Println("- showGridLines:", showGridLines) + fmt.Println("- showZeros:", showZeros) fmt.Println("- showRowColHeaders:", showRowColHeaders) fmt.Println("- zoomScale:", zoomScale) fmt.Println("- topLeftCell:", `"`+topLeftCell+`"`) @@ -137,8 +140,17 @@ func ExampleFile_GetSheetViewOptions() { panic(err) } + if err := f.SetSheetViewOptions(sheet, 0, excelize.ShowZeros(false)); err != nil { + panic(err) + } + + if err := f.GetSheetViewOptions(sheet, 0, &showZeros); err != nil { + panic(err) + } + fmt.Println("After change:") fmt.Println("- showGridLines:", showGridLines) + fmt.Println("- showZeros:", showZeros) fmt.Println("- topLeftCell:", topLeftCell) // Output: @@ -147,11 +159,13 @@ func ExampleFile_GetSheetViewOptions() { // - rightToLeft: false // - showFormulas: false // - showGridLines: true + // - showZeros: true // - showRowColHeaders: true // - zoomScale: 0 // - topLeftCell: "" // After change: // - showGridLines: false + // - showZeros: false // - topLeftCell: B2 } diff --git a/xmlWorksheet.go b/xmlWorksheet.go index fa07974272..c78d3ef7a7 100644 --- a/xmlWorksheet.go +++ b/xmlWorksheet.go @@ -167,7 +167,7 @@ type xlsxSheetView struct { ShowFormulas bool `xml:"showFormulas,attr,omitempty"` ShowGridLines *bool `xml:"showGridLines,attr"` ShowRowColHeaders *bool `xml:"showRowColHeaders,attr"` - ShowZeros bool `xml:"showZeros,attr,omitempty"` + ShowZeros *bool `xml:"showZeros,attr,omitempty"` RightToLeft bool `xml:"rightToLeft,attr,omitempty"` TabSelected bool `xml:"tabSelected,attr,omitempty"` ShowWhiteSpace *bool `xml:"showWhiteSpace,attr"`