diff options
author | Ri Xu <xuri.me@gmail.com> | 2017-08-11 23:15:33 +0800 |
---|---|---|
committer | Ri Xu <xuri.me@gmail.com> | 2017-08-11 23:15:33 +0800 |
commit | 67636039f672f23d4bf812b96ebb8521aec5d642 (patch) | |
tree | 0ad106951f37fee011a6033b43bce01c8a870851 /excelize_test.go | |
parent | a8cf38ebd5537b678a3747cd246fd1c511c73331 (diff) |
- Init conditional format support, relate issue #75;
- go test and godoc updated
Diffstat (limited to 'excelize_test.go')
-rw-r--r-- | excelize_test.go | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/excelize_test.go b/excelize_test.go index 2798319..f4a0774 100644 --- a/excelize_test.go +++ b/excelize_test.go @@ -1,6 +1,7 @@ package excelize import ( + "fmt" _ "image/gif" _ "image/jpeg" _ "image/png" @@ -895,3 +896,62 @@ func TestRemoveRow(t *testing.T) { t.Log(err) } } + +func TestConditionalFormat(t *testing.T) { + xlsx := NewFile() + for j := 1; j <= 10; j++ { + for i := 0; i <= 10; i++ { + xlsx.SetCellInt("Sheet1", ToAlphaString(i)+strconv.Itoa(j), j) + } + } + var format1, format2, format3 int + var err error + // Rose format for bad conditional. + format1, err = xlsx.NewConditionalStyle(`{"font":{"color":"#9A0511"},"fill":{"type":"pattern","color":["#FEC7CE"],"pattern":1}}`) + t.Log(err) + // Light yellow format for neutral conditional. + format2, err = xlsx.NewConditionalStyle(`{"fill":{"type":"pattern","color":["#FEEAA0"],"pattern":1}}`) + t.Log(err) + // Light green format for good conditional. + format3, err = xlsx.NewConditionalStyle(`{"font":{"color":"#09600B"},"fill":{"type":"pattern","color":["#C7EECF"],"pattern":1}}`) + t.Log(err) + // Color scales: 2 color. + xlsx.SetConditionalFormat("Sheet1", "A1:A10", `[{"type":"2_color_scale","criteria":"=","min_type":"min","max_type":"max","min_color":"#F8696B","max_color":"#63BE7B"}]`) + // Color scales: 3 color. + xlsx.SetConditionalFormat("Sheet1", "B1:B10", `[{"type":"3_color_scale","criteria":"=","min_type":"min","mid_type":"percentile","max_type":"max","min_color":"#F8696B","mid_color":"#FFEB84","max_color":"#63BE7B"}]`) + // Hightlight cells rules: between... + xlsx.SetConditionalFormat("Sheet1", "C1:C10", fmt.Sprintf(`[{"type":"cell","criteria":"between","format":%d,"minimum":"6","maximum":"8"}]`, format1)) + // Hightlight cells rules: Greater Than... + xlsx.SetConditionalFormat("Sheet1", "D1:D10", fmt.Sprintf(`[{"type":"cell","criteria":">","format":%d,"value":"6"}]`, format3)) + // Hightlight cells rules: Equal To... + xlsx.SetConditionalFormat("Sheet1", "E1:E10", fmt.Sprintf(`[{"type":"top","criteria":"=","format":%d}]`, format3)) + // Hightlight cells rules: Not Equal To... + xlsx.SetConditionalFormat("Sheet1", "F1:F10", fmt.Sprintf(`[{"type":"unique","criteria":"=","format":%d}]`, format2)) + // Hightlight cells rules: Duplicate Values... + xlsx.SetConditionalFormat("Sheet1", "G1:G10", fmt.Sprintf(`[{"type":"duplicate","criteria":"=","format":%d}]`, format2)) + // Top/Bottom rules: Top 10%. + xlsx.SetConditionalFormat("Sheet1", "H1:H10", fmt.Sprintf(`[{"type":"top","criteria":"=","format":%d,"value":"6","percent":true}]`, format1)) + // Top/Bottom rules: Above Average... + xlsx.SetConditionalFormat("Sheet1", "I1:I10", fmt.Sprintf(`[{"type":"average","criteria":"=","format":%d, "above_average": true}]`, format3)) + // Top/Bottom rules: Below Average... + xlsx.SetConditionalFormat("Sheet1", "J1:J10", fmt.Sprintf(`[{"type":"average","criteria":"=","format":%d, "above_average": false}]`, format1)) + // Data Bars: Gradient Fill. + xlsx.SetConditionalFormat("Sheet1", "K1:K10", `[{"type":"data_bar", "criteria":"=", "min_type":"min","max_type":"max","bar_color":"#638EC6"}]`) + err = xlsx.SaveAs("./test/Workbook_conditional_format.xlsx") + if err != nil { + t.Log(err) + } + + // Set conditional format with illegal JSON string. + _, err = xlsx.NewConditionalStyle("") + t.Log(err) + // Set conditional format with illegal valid type. + xlsx.SetConditionalFormat("Sheet1", "K1:K10", `[{"type":"", "criteria":"=", "min_type":"min","max_type":"max","bar_color":"#638EC6"}]`) + // Set conditional format with illegal criteria type. + xlsx.SetConditionalFormat("Sheet1", "K1:K10", `[{"type":"data_bar", "criteria":"", "min_type":"min","max_type":"max","bar_color":"#638EC6"}]`) + // Set conditional format with file without dxfs element. + xlsx, err = OpenFile("./test/Workbook1.xlsx") + t.Log(err) + _, err = xlsx.NewConditionalStyle(`{"font":{"color":"#9A0511"},"fill":{"type":"pattern","color":["#FEC7CE"],"pattern":1}}`) + t.Log(err) +} |