diff options
author | xuri <xuri.me@gmail.com> | 2022-08-24 00:00:47 +0800 |
---|---|---|
committer | xuri <xuri.me@gmail.com> | 2022-08-24 00:00:47 +0800 |
commit | cb8bca0e92cbec30db10c2a2863ef81fd98a6138 (patch) | |
tree | ee88b5e9d15ebace0e702ad05ae84e4f10fe33c2 | |
parent | ab12307393461e7055f664d296a3a0e686eebb39 (diff) |
This closes #1290 and closes #1328
- Add new smooth field in chart format parameter, support specify if smooth line chart
- Fix decimal number format round issue with build-in number format
-rw-r--r-- | cell_test.go | 8 | ||||
-rw-r--r-- | drawing.go | 4 | ||||
-rw-r--r-- | styles.go | 2 | ||||
-rw-r--r-- | xmlChart.go | 7 |
4 files changed, 14 insertions, 7 deletions
diff --git a/cell_test.go b/cell_test.go index fb1e8ef..2a09a9d 100644 --- a/cell_test.go +++ b/cell_test.go @@ -699,6 +699,14 @@ func TestFormattedValue2(t *testing.T) { }) v = f.formattedValue(1, "43528", false) assert.Equal(t, "43528", v) + + // formatted decimal value with build-in number format ID + styleID, err := f.NewStyle(&Style{ + NumFmt: 1, + }) + assert.NoError(t, err) + v = f.formattedValue(styleID, "310.56", false) + assert.Equal(t, "311", v) } func TestSharedStringsError(t *testing.T) { @@ -543,9 +543,6 @@ func (f *File) drawLineChart(formatSet *formatChart) *cPlotArea { }, Ser: f.drawChartSeries(formatSet), DLbls: f.drawChartDLbls(formatSet), - Smooth: &attrValBool{ - Val: boolPtr(false), - }, AxID: []*attrValInt{ {Val: intPtr(754001152)}, {Val: intPtr(753999904)}, @@ -757,6 +754,7 @@ func (f *File) drawChartSeries(formatSet *formatChart) *[]cSer { DLbls: f.drawChartSeriesDLbls(formatSet), InvertIfNegative: &attrValBool{Val: boolPtr(false)}, Cat: f.drawChartSeriesCat(formatSet.Series[k], formatSet), + Smooth: &attrValBool{Val: boolPtr(formatSet.Series[k].Line.Smooth)}, Val: f.drawChartSeriesVal(formatSet.Series[k], formatSet), XVal: f.drawChartSeriesXVal(formatSet.Series[k], formatSet), YVal: f.drawChartSeriesYVal(formatSet.Series[k], formatSet), @@ -852,7 +852,7 @@ func formatToInt(v, format string, date1904 bool) string { if err != nil { return v } - return fmt.Sprintf("%d", int64(f)) + return fmt.Sprintf("%d", int64(math.Round(f))) } // formatToFloat provides a function to convert original string to float diff --git a/xmlChart.go b/xmlChart.go index b6ee3cd..dcd33e4 100644 --- a/xmlChart.go +++ b/xmlChart.go @@ -620,9 +620,10 @@ type formatChartSeries struct { Categories string `json:"categories"` Values string `json:"values"` Line struct { - None bool `json:"none"` - Color string `json:"color"` - Width float64 `json:"width"` + None bool `json:"none"` + Color string `json:"color"` + Smooth bool `json:"smooth"` + Width float64 `json:"width"` } `json:"line"` Marker struct { Symbol string `json:"symbol"` |