fpspreadsheet: Support of chart cell range by xlsx chart writer
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@9189 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
parent
8a823a550d
commit
3cecc46ecd
@ -1514,6 +1514,8 @@ begin
|
||||
Result := Sheet1
|
||||
else
|
||||
Result := FChart.Worksheet.Name;
|
||||
if SheetNameNeedsQuotes(Result) then
|
||||
Result := QuotedStr(Result);
|
||||
end;
|
||||
|
||||
function TsChartRange.GetSheet2Name: String;
|
||||
@ -1522,6 +1524,8 @@ begin
|
||||
Result := Sheet2
|
||||
else
|
||||
Result := FChart.Worksheet.Name;
|
||||
if SheetNameNeedsQuotes(Result) then
|
||||
Result := QuotedStr(Result);
|
||||
end;
|
||||
|
||||
function TsChartRange.IsEmpty: Boolean;
|
||||
|
@ -81,6 +81,7 @@ type
|
||||
FPointSeparatorSettings: TFormatSettings;
|
||||
FAxisID: array[TsChartAxisAlignment] of DWord;
|
||||
function GetChartFillAndLineXML(AIndent: Integer; AFill: TsChartFill; ALine: TsChartLine): String;
|
||||
function GetChartRangeXML(AIndent: Integer; ARange: TsChartRange): String;
|
||||
|
||||
protected
|
||||
// Called by the public functions
|
||||
@ -3137,6 +3138,23 @@ begin
|
||||
ind + '</c:spPr>' + LE
|
||||
end;
|
||||
|
||||
function TsSpreadOOXMLChartWriter.GetChartRangeXML(AIndent: Integer;
|
||||
ARange: TsChartRange): String;
|
||||
var
|
||||
indent: String;
|
||||
begin
|
||||
indent := DupeString(' ', AIndent);
|
||||
if ARange.Sheet1 = ARange.Sheet2 then
|
||||
Result := ARange.GetSheet1Name + '!' + GetCellRangeString(ARange.Row1, ARange.Col1, ARange.Row2, ARange.Col2, [])
|
||||
else
|
||||
Result := GetCellRangeString(ARange.GetSheet1Name, ARange.GetSheet2Name, ARange.Row1, ARange.Col1, ARange.Row2, ARange.Col2, []);
|
||||
|
||||
Result :=
|
||||
indent + '<c:numRef> ' + LE +
|
||||
indent + ' <c:f>' + Result + '</c:f>' + LE +
|
||||
indent + '</c:numRef>';
|
||||
end;
|
||||
|
||||
{@@ ----------------------------------------------------------------------------
|
||||
Write the properties of the given chart axis to the chartN.xml file under
|
||||
the <c:plotArea> node
|
||||
@ -3304,6 +3322,12 @@ begin
|
||||
indent + ' <c:ser>' + LE +
|
||||
indent + ' <c:idx val="0"/>' + LE +
|
||||
indent + ' <c:order val="0"/>' + LE +
|
||||
indent + ' <c:xVal>' + LE +
|
||||
indent + ' ' + GetChartRangeXML(AIndent + 8, ASeries.XRange) + LE +
|
||||
indent + ' </c:xVal>' + LE +
|
||||
indent + ' <c:yVal>' + LE +
|
||||
indent + ' ' + GetChartRangeXML(AIndent + 8, ASeries.YRange) + LE +
|
||||
indent + ' </c:yVal>' + LE +
|
||||
indent + ' </c:ser>' + LE +
|
||||
indent + ' <c:axId val="%d"/>' + LE +
|
||||
indent + ' <c:axId val="%d"/>' + LE +
|
||||
|
Loading…
Reference in New Issue
Block a user