From c7f8ce5f38a2eda84d028b68fd14e55a3eff35c8 Mon Sep 17 00:00:00 2001 From: wp_xxyyzz Date: Wed, 31 Jan 2024 23:51:14 +0000 Subject: [PATCH] fpspreadsheet: xlsx chart writer supports axis gridlines. git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@9196 8e941d3f-bd1b-0410-a28a-d453659cc2b4 --- .../source/common/xlsxooxmlchart.pas | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/components/fpspreadsheet/source/common/xlsxooxmlchart.pas b/components/fpspreadsheet/source/common/xlsxooxmlchart.pas index ae1d2642d..c92fa22a4 100644 --- a/components/fpspreadsheet/source/common/xlsxooxmlchart.pas +++ b/components/fpspreadsheet/source/common/xlsxooxmlchart.pas @@ -3404,6 +3404,25 @@ procedure TsSpreadOOXMLChartWriter.WriteChartAxisNode(AStream: TStream; Result := 'cross'; end; + function GetGridLineStr(AIndent: Integer; ANodeName: String; ALine: TsChartLine): String; + var + indent: String; + begin + if ALine.Style <> clsNoLine then + begin + indent := DupeString(' ', AIndent); + Result := Format( + indent + '<%0:s>' + LE + + indent + ' ' + LE + + '%s' + LE + + indent + ' ' + LE + + indent + '' + LE, + [ ANodeName, GetChartLineXML(AIndent + 4, Axis.Chart, ALine) ] + ) + end else + Result := ''; + end; + const AX_POS: array[TsChartAxisAlignment] of string = ('l', 't', 'r', 'b'); var @@ -3424,6 +3443,8 @@ begin indent + ' ' + LE + indent + ' ' + LE + indent + ' ' + LE + + GetGridLineStr(AIndent + 2, 'c:majorGridlines', Axis.MajorGridLines) + + GetGridLineStr(AIndent + 2, 'c:minorGridlines', Axis.MinorGridLines) + indent + ' ' + LE + indent + ' ' + LE + indent + ' ' + LE +