Go language library for reading and writing Microsoft Excel™ (XLAM / XLSM / XLSX / XLTM / XLTX) spreadsheets
修订版 | 71829c520235b733870563f30dceef9ef4dbbb98 (tree) |
---|---|
时间 | 2020-12-27 01:18:54 |
作者 | ![]() |
Commiter | xuri |
AddChart support disable legend of the chart
@@ -112,7 +112,8 @@ import ( | ||
112 | 112 | |
113 | 113 | func main() { |
114 | 114 | categories := map[string]string{ |
115 | - "A2": "Small", "A3": "Normal", "A4": "Large", "B1": "Apple", "C1": "Orange", "D1": "Pear"} | |
115 | + "A2": "Small", "A3": "Normal", "A4": "Large", | |
116 | + "B1": "Apple", "C1": "Orange", "D1": "Pear"} | |
116 | 117 | values := map[string]int{ |
117 | 118 | "B2": 2, "C2": 3, "D2": 3, "B3": 5, "C3": 2, "D3": 4, "B4": 6, "C4": 7, "D4": 8} |
118 | 119 | f := excelize.NewFile() |
@@ -112,7 +112,8 @@ import ( | ||
112 | 112 | |
113 | 113 | func main() { |
114 | 114 | categories := map[string]string{ |
115 | - "A2": "Small", "A3": "Normal", "A4": "Large", "B1": "Apple", "C1": "Orange", "D1": "Pear"} | |
115 | + "A2": "Small", "A3": "Normal", "A4": "Large", | |
116 | + "B1": "Apple", "C1": "Orange", "D1": "Pear"} | |
116 | 117 | values := map[string]int{ |
117 | 118 | "B2": 2, "C2": 3, "D2": 3, "B3": 5, "C3": 2, "D3": 4, "B4": 6, "C4": 7, "D4": 8} |
118 | 119 | f := excelize.NewFile() |
@@ -514,8 +514,11 @@ func parseFormatChartSet(formatSet string) (*formatChart, error) { | ||
514 | 514 | // ) |
515 | 515 | // |
516 | 516 | // func main() { |
517 | -// categories := map[string]string{"A2": "Small", "A3": "Normal", "A4": "Large", "B1": "Apple", "C1": "Orange", "D1": "Pear"} | |
518 | -// values := map[string]int{"B2": 2, "C2": 3, "D2": 3, "B3": 5, "C3": 2, "D3": 4, "B4": 6, "C4": 7, "D4": 8} | |
517 | +// categories := map[string]string{ | |
518 | +// "A2": "Small", "A3": "Normal", "A4": "Large", | |
519 | +// "B1": "Apple", "C1": "Orange", "D1": "Pear"} | |
520 | +// values := map[string]int{ | |
521 | +// "B2": 2, "C2": 3, "D2": 3, "B3": 5, "C3": 2, "D3": 4, "B4": 6, "C4": 7, "D4": 8} | |
519 | 522 | // f := excelize.NewFile() |
520 | 523 | // for k, v := range categories { |
521 | 524 | // f.SetCellValue("Sheet1", k, v) |
@@ -523,7 +526,54 @@ func parseFormatChartSet(formatSet string) (*formatChart, error) { | ||
523 | 526 | // for k, v := range values { |
524 | 527 | // f.SetCellValue("Sheet1", k, v) |
525 | 528 | // } |
526 | -// if err := f.AddChart("Sheet1", "E1", `{"type":"col3DClustered","series":[{"name":"Sheet1!$A$2","categories":"Sheet1!$B$1:$D$1","values":"Sheet1!$B$2:$D$2"},{"name":"Sheet1!$A$3","categories":"Sheet1!$B$1:$D$1","values":"Sheet1!$B$3:$D$3"},{"name":"Sheet1!$A$4","categories":"Sheet1!$B$1:$D$1","values":"Sheet1!$B$4:$D$4"}],"title":{"name":"Fruit 3D Clustered Column Chart"},"plotarea":{"show_bubble_size":true,"show_cat_name":false,"show_leader_lines":false,"show_percent":true,"show_series_name":true,"show_val":true},"show_blanks_as":"zero","x_axis":{"reverse_order":true},"y_axis":{"maximum":7.5,"minimum":0.5}}`); err != nil { | |
529 | +// if err := f.AddChart("Sheet1", "E1", `{ | |
530 | +// "type": "col3DClustered", | |
531 | +// "series": [ | |
532 | +// { | |
533 | +// "name": "Sheet1!$A$2", | |
534 | +// "categories": "Sheet1!$B$1:$D$1", | |
535 | +// "values": "Sheet1!$B$2:$D$2" | |
536 | +// }, | |
537 | +// { | |
538 | +// "name": "Sheet1!$A$3", | |
539 | +// "categories": "Sheet1!$B$1:$D$1", | |
540 | +// "values": "Sheet1!$B$3:$D$3" | |
541 | +// }, | |
542 | +// { | |
543 | +// "name": "Sheet1!$A$4", | |
544 | +// "categories": "Sheet1!$B$1:$D$1", | |
545 | +// "values": "Sheet1!$B$4:$D$4" | |
546 | +// }], | |
547 | +// "title": | |
548 | +// { | |
549 | +// "name": "Fruit 3D Clustered Column Chart" | |
550 | +// }, | |
551 | +// "legend": | |
552 | +// { | |
553 | +// "none": false, | |
554 | +// "position": "bottom", | |
555 | +// "show_legend_key": false | |
556 | +// }, | |
557 | +// "plotarea": | |
558 | +// { | |
559 | +// "show_bubble_size": true, | |
560 | +// "show_cat_name": false, | |
561 | +// "show_leader_lines": false, | |
562 | +// "show_percent": true, | |
563 | +// "show_series_name": true, | |
564 | +// "show_val": true | |
565 | +// }, | |
566 | +// "show_blanks_as": "zero", | |
567 | +// "x_axis": | |
568 | +// { | |
569 | +// "reverse_order": true | |
570 | +// }, | |
571 | +// "y_axis": | |
572 | +// { | |
573 | +// "maximum": 7.5, | |
574 | +// "minimum": 0.5 | |
575 | +// } | |
576 | +// }`); err != nil { | |
527 | 577 | // fmt.Println(err) |
528 | 578 | // return |
529 | 579 | // } |
@@ -627,10 +677,13 @@ func parseFormatChartSet(formatSet string) (*formatChart, error) { | ||
627 | 677 | // |
628 | 678 | // Set properties of the chart legend. The options that can be set are: |
629 | 679 | // |
680 | +// none | |
630 | 681 | // position |
631 | 682 | // show_legend_key |
632 | 683 | // |
633 | -// position: Set the position of the chart legend. The default legend position is right. The available positions are: | |
684 | +// none: Specified if show the legend without overlapping the chart. The default value is 'false'. | |
685 | +// | |
686 | +// position: Set the position of the chart legend. The default legend position is right. This parameter only takes effect when 'none' is false. The available positions are: | |
634 | 687 | // |
635 | 688 | // top |
636 | 689 | // bottom |
@@ -728,8 +781,11 @@ func parseFormatChartSet(formatSet string) (*formatChart, error) { | ||
728 | 781 | // ) |
729 | 782 | // |
730 | 783 | // func main() { |
731 | -// categories := map[string]string{"A2": "Small", "A3": "Normal", "A4": "Large", "B1": "Apple", "C1": "Orange", "D1": "Pear"} | |
732 | -// values := map[string]int{"B2": 2, "C2": 3, "D2": 3, "B3": 5, "C3": 2, "D3": 4, "B4": 6, "C4": 7, "D4": 8} | |
784 | +// categories := map[string]string{ | |
785 | +// "A2": "Small", "A3": "Normal", "A4": "Large", | |
786 | +// "B1": "Apple", "C1": "Orange", "D1": "Pear"} | |
787 | +// values := map[string]int{ | |
788 | +// "B2": 2, "C2": 3, "D2": 3, "B3": 5, "C3": 2, "D3": 4, "B4": 6, "C4": 7, "D4": 8} | |
733 | 789 | // f := excelize.NewFile() |
734 | 790 | // for k, v := range categories { |
735 | 791 | // f.SetCellValue("Sheet1", k, v) |
@@ -737,7 +793,85 @@ func parseFormatChartSet(formatSet string) (*formatChart, error) { | ||
737 | 793 | // for k, v := range values { |
738 | 794 | // f.SetCellValue("Sheet1", k, v) |
739 | 795 | // } |
740 | -// if err := f.AddChart("Sheet1", "E1", `{"type":"col","series":[{"name":"Sheet1!$A$2","categories":"","values":"Sheet1!$B$2:$D$2"},{"name":"Sheet1!$A$3","categories":"Sheet1!$B$1:$D$1","values":"Sheet1!$B$3:$D$3"}],"format":{"x_scale":1.0,"y_scale":1.0,"x_offset":15,"y_offset":10,"print_obj":true,"lock_aspect_ratio":false,"locked":false},"legend":{"position":"left","show_legend_key":false},"title":{"name":"Clustered Column - Line Chart"},"plotarea":{"show_bubble_size":true,"show_cat_name":false,"show_leader_lines":false,"show_percent":true,"show_series_name":true,"show_val":true}}`, `{"type":"line","series":[{"name":"Sheet1!$A$4","categories":"Sheet1!$B$1:$D$1","values":"Sheet1!$B$4:$D$4","marker":{"symbol":"none","size":10}}],"format":{"x_scale":1,"y_scale":1,"x_offset":15,"y_offset":10,"print_obj":true,"lock_aspect_ratio":false,"locked":false},"legend":{"position":"left","show_legend_key":false},"plotarea":{"show_bubble_size":true,"show_cat_name":false,"show_leader_lines":false,"show_percent":true,"show_series_name":true,"show_val":true}}`); err != nil { | |
796 | +// if err := f.AddChart("Sheet1", "E1", `{ | |
797 | +// "type": "col", | |
798 | +// "series": [ | |
799 | +// { | |
800 | +// "name": "Sheet1!$A$2", | |
801 | +// "categories": "", | |
802 | +// "values": "Sheet1!$B$2:$D$2" | |
803 | +// }, | |
804 | +// { | |
805 | +// "name": "Sheet1!$A$3", | |
806 | +// "categories": "Sheet1!$B$1:$D$1", | |
807 | +// "values": "Sheet1!$B$3:$D$3" | |
808 | +// }], | |
809 | +// "format": | |
810 | +// { | |
811 | +// "x_scale": 1.0, | |
812 | +// "y_scale": 1.0, | |
813 | +// "x_offset": 15, | |
814 | +// "y_offset": 10, | |
815 | +// "print_obj": true, | |
816 | +// "lock_aspect_ratio": false, | |
817 | +// "locked": false | |
818 | +// }, | |
819 | +// "title": | |
820 | +// { | |
821 | +// "name": "Clustered Column - Line Chart" | |
822 | +// }, | |
823 | +// "legend": | |
824 | +// { | |
825 | +// "position": "left", | |
826 | +// "show_legend_key": false | |
827 | +// }, | |
828 | +// "plotarea": | |
829 | +// { | |
830 | +// "show_bubble_size": true, | |
831 | +// "show_cat_name": false, | |
832 | +// "show_leader_lines": false, | |
833 | +// "show_percent": true, | |
834 | +// "show_series_name": true, | |
835 | +// "show_val": true | |
836 | +// } | |
837 | +// }`, `{ | |
838 | +// "type": "line", | |
839 | +// "series": [ | |
840 | +// { | |
841 | +// "name": "Sheet1!$A$4", | |
842 | +// "categories": "Sheet1!$B$1:$D$1", | |
843 | +// "values": "Sheet1!$B$4:$D$4", | |
844 | +// "marker": | |
845 | +// { | |
846 | +// "symbol": "none", | |
847 | +// "size": 10 | |
848 | +// } | |
849 | +// }], | |
850 | +// "format": | |
851 | +// { | |
852 | +// "x_scale": 1, | |
853 | +// "y_scale": 1, | |
854 | +// "x_offset": 15, | |
855 | +// "y_offset": 10, | |
856 | +// "print_obj": true, | |
857 | +// "lock_aspect_ratio": false, | |
858 | +// "locked": false | |
859 | +// }, | |
860 | +// "legend": | |
861 | +// { | |
862 | +// "position": "right", | |
863 | +// "show_legend_key": false | |
864 | +// }, | |
865 | +// "plotarea": | |
866 | +// { | |
867 | +// "show_bubble_size": true, | |
868 | +// "show_cat_name": false, | |
869 | +// "show_leader_lines": false, | |
870 | +// "show_percent": true, | |
871 | +// "show_series_name": true, | |
872 | +// "show_val": true | |
873 | +// } | |
874 | +// }`); err != nil { | |
741 | 875 | // fmt.Println(err) |
742 | 876 | // return |
743 | 877 | // } |
@@ -116,7 +116,7 @@ func TestAddChart(t *testing.T) { | ||
116 | 116 | // Test add chart on not exists worksheet. |
117 | 117 | assert.EqualError(t, f.AddChart("SheetN", "P1", "{}"), "sheet SheetN is not exist") |
118 | 118 | |
119 | - assert.NoError(t, f.AddChart("Sheet1", "P1", `{"type":"col","series":[{"name":"Sheet1!$A$30","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$30:$D$30"},{"name":"Sheet1!$A$31","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$31:$D$31"},{"name":"Sheet1!$A$32","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$32:$D$32"},{"name":"Sheet1!$A$33","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$33:$D$33"},{"name":"Sheet1!$A$34","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$34:$D$34"},{"name":"Sheet1!$A$35","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$35:$D$35"},{"name":"Sheet1!$A$36","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$36:$D$36"},{"name":"Sheet1!$A$37","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$37:$D$37"}],"format":{"x_scale":1.0,"y_scale":1.0,"x_offset":15,"y_offset":10,"print_obj":true,"lock_aspect_ratio":false,"locked":false},"legend":{"position":"left","show_legend_key":false},"title":{"name":"2D Column Chart"},"plotarea":{"show_bubble_size":true,"show_cat_name":false,"show_leader_lines":false,"show_percent":true,"show_series_name":true,"show_val":true},"show_blanks_as":"zero"}`)) | |
119 | + assert.NoError(t, f.AddChart("Sheet1", "P1", `{"type":"col","series":[{"name":"Sheet1!$A$30","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$30:$D$30"},{"name":"Sheet1!$A$31","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$31:$D$31"},{"name":"Sheet1!$A$32","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$32:$D$32"},{"name":"Sheet1!$A$33","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$33:$D$33"},{"name":"Sheet1!$A$34","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$34:$D$34"},{"name":"Sheet1!$A$35","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$35:$D$35"},{"name":"Sheet1!$A$36","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$36:$D$36"},{"name":"Sheet1!$A$37","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$37:$D$37"}],"format":{"x_scale":1.0,"y_scale":1.0,"x_offset":15,"y_offset":10,"print_obj":true,"lock_aspect_ratio":false,"locked":false},"legend":{"none":true,"show_legend_key":true},"title":{"name":"2D Column Chart"},"plotarea":{"show_bubble_size":true,"show_cat_name":false,"show_leader_lines":false,"show_percent":true,"show_series_name":true,"show_val":true},"show_blanks_as":"zero"}`)) | |
120 | 120 | assert.NoError(t, f.AddChart("Sheet1", "X1", `{"type":"colStacked","series":[{"name":"Sheet1!$A$30","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$30:$D$30"},{"name":"Sheet1!$A$31","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$31:$D$31"},{"name":"Sheet1!$A$32","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$32:$D$32"},{"name":"Sheet1!$A$33","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$33:$D$33"},{"name":"Sheet1!$A$34","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$34:$D$34"},{"name":"Sheet1!$A$35","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$35:$D$35"},{"name":"Sheet1!$A$36","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$36:$D$36"},{"name":"Sheet1!$A$37","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$37:$D$37"}],"format":{"x_scale":1.0,"y_scale":1.0,"x_offset":15,"y_offset":10,"print_obj":true,"lock_aspect_ratio":false,"locked":false},"legend":{"position":"left","show_legend_key":false},"title":{"name":"2D Stacked Column Chart"},"plotarea":{"show_bubble_size":true,"show_cat_name":false,"show_leader_lines":false,"show_percent":true,"show_series_name":true,"show_val":true},"show_blanks_as":"zero"}`)) |
121 | 121 | assert.NoError(t, f.AddChart("Sheet1", "P16", `{"type":"colPercentStacked","series":[{"name":"Sheet1!$A$30","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$30:$D$30"},{"name":"Sheet1!$A$31","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$31:$D$31"},{"name":"Sheet1!$A$32","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$32:$D$32"},{"name":"Sheet1!$A$33","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$33:$D$33"},{"name":"Sheet1!$A$34","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$34:$D$34"},{"name":"Sheet1!$A$35","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$35:$D$35"},{"name":"Sheet1!$A$36","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$36:$D$36"},{"name":"Sheet1!$A$37","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$37:$D$37"}],"format":{"x_scale":1.0,"y_scale":1.0,"x_offset":15,"y_offset":10,"print_obj":true,"lock_aspect_ratio":false,"locked":false},"legend":{"position":"left","show_legend_key":false},"title":{"name":"100% Stacked Column Chart"},"plotarea":{"show_bubble_size":true,"show_cat_name":false,"show_leader_lines":false,"show_percent":true,"show_series_name":true,"show_val":true},"show_blanks_as":"zero"}`)) |
122 | 122 | assert.NoError(t, f.AddChart("Sheet1", "X16", `{"type":"col3DClustered","series":[{"name":"Sheet1!$A$30","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$30:$D$30"},{"name":"Sheet1!$A$31","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$31:$D$31"},{"name":"Sheet1!$A$32","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$32:$D$32"},{"name":"Sheet1!$A$33","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$33:$D$33"},{"name":"Sheet1!$A$34","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$34:$D$34"},{"name":"Sheet1!$A$35","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$35:$D$35"},{"name":"Sheet1!$A$36","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$36:$D$36"},{"name":"Sheet1!$A$37","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$37:$D$37"}],"format":{"x_scale":1.0,"y_scale":1.0,"x_offset":15,"y_offset":10,"print_obj":true,"lock_aspect_ratio":false,"locked":false},"legend":{"position":"bottom","show_legend_key":false},"title":{"name":"3D Clustered Column Chart"},"plotarea":{"show_bubble_size":true,"show_cat_name":false,"show_leader_lines":false,"show_percent":true,"show_series_name":true,"show_val":true},"show_blanks_as":"zero"}`)) |
@@ -179,14 +179,14 @@ func TestAddChart(t *testing.T) { | ||
179 | 179 | assert.NoError(t, f.AddChart("Sheet2", "BD64", `{"type":"barOfPie","series":[{"name":"Sheet1!$A$30","categories":"Sheet1!$A$30:$D$37","values":"Sheet1!$B$30:$B$37"}],"format":{"x_scale":1.0,"y_scale":1.0,"x_offset":15,"y_offset":10,"print_obj":true,"lock_aspect_ratio":false,"locked":false},"legend":{"position":"left","show_legend_key":false},"title":{"name":"Bar of Pie Chart"},"plotarea":{"show_bubble_size":true,"show_cat_name":false,"show_leader_lines":false,"show_percent":true,"show_series_name":true,"show_val":true},"show_blanks_as":"zero","x_axis":{"major_grid_lines":true},"y_axis":{"major_grid_lines":true}}`)) |
180 | 180 | // combo chart |
181 | 181 | f.NewSheet("Combo Charts") |
182 | - clusteredColumnCombo := map[string][]string{ | |
183 | - "A1": {"line", "Clustered Column - Line Chart"}, | |
184 | - "I1": {"bubble", "Clustered Column - Bubble Chart"}, | |
185 | - "Q1": {"bubble3D", "Clustered Column - Bubble 3D Chart"}, | |
186 | - "Y1": {"doughnut", "Clustered Column - Doughnut Chart"}, | |
182 | + clusteredColumnCombo := [][]string{ | |
183 | + {"A1", "line", "Clustered Column - Line Chart"}, | |
184 | + {"I1", "bubble", "Clustered Column - Bubble Chart"}, | |
185 | + {"Q1", "bubble3D", "Clustered Column - Bubble 3D Chart"}, | |
186 | + {"Y1", "doughnut", "Clustered Column - Doughnut Chart"}, | |
187 | 187 | } |
188 | - for axis, props := range clusteredColumnCombo { | |
189 | - assert.NoError(t, f.AddChart("Combo Charts", axis, fmt.Sprintf(`{"type":"col","series":[{"name":"Sheet1!$A$30","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$30:$D$30"},{"name":"Sheet1!$A$31","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$31:$D$31"},{"name":"Sheet1!$A$32","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$32:$D$32"},{"name":"Sheet1!$A$33","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$33:$D$33"}],"format":{"x_scale":1.0,"y_scale":1.0,"x_offset":15,"y_offset":10,"print_obj":true,"lock_aspect_ratio":false,"locked":false},"legend":{"position":"left","show_legend_key":false},"title":{"name":"%s"},"plotarea":{"show_bubble_size":true,"show_cat_name":false,"show_leader_lines":false,"show_percent":true,"show_series_name":true,"show_val":true}}`, props[1]), fmt.Sprintf(`{"type":"%s","series":[{"name":"Sheet1!$A$34","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$34:$D$34"},{"name":"Sheet1!$A$35","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$35:$D$35"},{"name":"Sheet1!$A$36","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$36:$D$36"},{"name":"Sheet1!$A$37","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$37:$D$37"}],"format":{"x_scale":1.0,"y_scale":1.0,"x_offset":15,"y_offset":10,"print_obj":true,"lock_aspect_ratio":false,"locked":false},"legend":{"position":"left","show_legend_key":false},"plotarea":{"show_bubble_size":true,"show_cat_name":false,"show_leader_lines":false,"show_percent":true,"show_series_name":true,"show_val":true}}`, props[0]))) | |
188 | + for _, props := range clusteredColumnCombo { | |
189 | + assert.NoError(t, f.AddChart("Combo Charts", props[0], fmt.Sprintf(`{"type":"col","series":[{"name":"Sheet1!$A$30","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$30:$D$30"},{"name":"Sheet1!$A$31","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$31:$D$31"},{"name":"Sheet1!$A$32","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$32:$D$32"},{"name":"Sheet1!$A$33","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$33:$D$33"}],"format":{"x_scale":1.0,"y_scale":1.0,"x_offset":15,"y_offset":10,"print_obj":true,"lock_aspect_ratio":false,"locked":false},"legend":{"position":"left","show_legend_key":false},"title":{"name":"%s"},"plotarea":{"show_bubble_size":true,"show_cat_name":false,"show_leader_lines":false,"show_percent":true,"show_series_name":true,"show_val":true}}`, props[2]), fmt.Sprintf(`{"type":"%s","series":[{"name":"Sheet1!$A$34","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$34:$D$34"},{"name":"Sheet1!$A$35","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$35:$D$35"},{"name":"Sheet1!$A$36","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$36:$D$36"},{"name":"Sheet1!$A$37","categories":"Sheet1!$B$29:$D$29","values":"Sheet1!$B$37:$D$37"}],"format":{"x_scale":1.0,"y_scale":1.0,"x_offset":15,"y_offset":10,"print_obj":true,"lock_aspect_ratio":false,"locked":false},"legend":{"position":"left","show_legend_key":false},"plotarea":{"show_bubble_size":true,"show_cat_name":false,"show_leader_lines":false,"show_percent":true,"show_series_name":true,"show_val":true}}`, props[1]))) | |
190 | 190 | } |
191 | 191 | stackedAreaCombo := map[string][]string{ |
192 | 192 | "A16": {"line", "Stacked Area - Line Chart"}, |
@@ -236,6 +236,9 @@ func (f *File) addChart(formatSet *formatChart, comboCharts []*formatChart) { | ||
236 | 236 | Bubble: f.drawBaseChart, |
237 | 237 | Bubble3D: f.drawBaseChart, |
238 | 238 | } |
239 | + if formatSet.Legend.None { | |
240 | + xlsxChartSpace.Chart.Legend = nil | |
241 | + } | |
239 | 242 | addChart := func(c, p *cPlotArea) { |
240 | 243 | immutable, mutable := reflect.ValueOf(c).Elem(), reflect.ValueOf(p).Elem() |
241 | 244 | for i := 0; i < mutable.NumField(); i++ { |