diff --git a/components/fpspreadsheet/source/common/xlsxooxml.pas b/components/fpspreadsheet/source/common/xlsxooxml.pas index d5b945f08..a8a9ea2d1 100644 --- a/components/fpspreadsheet/source/common/xlsxooxml.pas +++ b/components/fpspreadsheet/source/common/xlsxooxml.pas @@ -6570,6 +6570,7 @@ procedure TsSpreadOOXMLWriter.WriteDrawings(AWorksheet: TsBasicWorksheet); roffs1, coffs1, roffs2, coffs2: Double; x, y, w, h: Double; sheet: TsWorksheet; + guid: TGUID; begin r1 := AChart.Row; c1 := AChart.Col; @@ -6590,16 +6591,20 @@ procedure TsSpreadOOXMLWriter.WriteDrawings(AWorksheet: TsBasicWorksheet); AnchorAsXML(4, 'xdr:to', c2, r2, coffs2, roffs2) + LE ); + CreateGUID(guid); AppendToStream(AStream, Format( ' ' + LE + ' ' + LE + ' ' + LE + // line 1 + //{ ' ' + LE + ' ' + LE + ' ' + LE + + 'id="' + GUIDToString(guid) + '"/>' + LE + + // 'id="{00000000-0008-0000-0000-000002000000}"/>' + LE + ' ' + LE + ' ' + LE + + //} ' ' + LE + ' ' + LE + ' ' + LE + @@ -7454,7 +7459,7 @@ begin '' + LineEnding, [MIME_RELS])); AppendToStream(FSContentTypes, Format( '' + LineEnding, [MIME_XML])); - AppendToStream(FSContentTypes, Format( + AppendToStream(FSContentTypes, Format( '' + LineEnding, [MIME_VMLDRAWING])); if book.GetEmbeddedObjCount > 0 then @@ -7479,17 +7484,13 @@ begin AppendToStream(FSContentTypes, '' + LineEnding); - {$ifdef FPS_CHARTS} - TsSpreadOOXMLChartWriter(FChartWriter).WriteChartContentTypes(FSContentTypes); - {$endif} - for i:=1 to book.GetWorksheetCount do begin AppendToStream(FSContentTypes, Format( '' + LineEnding, [i, MIME_WORKSHEET])); sheet := book.GetWorksheetByIndex(i-1); - if sheet.GetImageCount > 0 then + if (sheet.GetImageCount > 0) {$ifdef FPS_CHARTS} or (sheet.GetChartCount > 0){$endif} then AppendToStream(FSContentTypes, Format( '' + LineEnding, [i, MIME_DRAWING])); @@ -7505,6 +7506,10 @@ begin AppendToStream(FSContentTypes, '' + LineEnding); + {$ifdef FPS_CHARTS} + TsSpreadOOXMLChartWriter(FChartWriter).WriteChartContentTypes(FSContentTypes); + {$endif} + AppendToStream(FSContentTypes, ''); diff --git a/components/fpspreadsheet/source/common/xlsxooxmlchart.pas b/components/fpspreadsheet/source/common/xlsxooxmlchart.pas index be0695a49..6dd253da9 100644 --- a/components/fpspreadsheet/source/common/xlsxooxmlchart.pas +++ b/components/fpspreadsheet/source/common/xlsxooxmlchart.pas @@ -3084,6 +3084,44 @@ var chart: TsChart; xAxID, yAxID: Integer; begin + AppendToStream(AStream, + '' + LE + + '' + LE + + ' ' + LE + + ' ' + LE + + ' ' + LE + + ' ' + LE + + ' ' + LE + + ' ' + LE + + ' ' + LE + + ' ' + LE + + ' ' + LE + + ' ' + LE + + ' ' + LE + + ' ' + LE + + ' ' + LE + + ' ' + LE + + ' ' + LE + + ' ' + LE + + ' ' + LE + + ' ' + LE + + ' ' + LE + + ' ' + LE + + ' ' + LE + + ' ' + LE + + ' ' + LE + + ' ' + LE + + ' ' + LE + + ' ' + LE + + ' ' + LE + + ' ' + LE + + ' ' + LE + + '' + LE + ); + (* + + + chart := TsWorkbook(Writer.Workbook).GetChartByIndex(AChartIndex); AppendToStream(AStream, XML_HEADER + LE); @@ -3114,6 +3152,7 @@ begin AppendToStream(AStream, '' + LE ); + *) end; function TsSpreadOOXMLChartWriter.GetChartFillAndLineXML(AIndent: Integer; @@ -3194,6 +3233,16 @@ begin ind + '' + LE + ind + ' ' + LE + + ind + ' ' +LE + + ind + ' ' + LE + + ind + ' ' + LE + + ind + ' ' + LE + + ind + ' ' + LE + + ind + ' ' + LE + + ind + ' ' + LE + + ind + ' ' + LE + + ind + ' ' + LE + + { ind + ' ' + LE + ind + ' ' + LE + ind + ' ' + LE + @@ -3211,11 +3260,11 @@ begin ind + ' ' + LE + ind + ' ' + LE + ind + ' ' + LE + - + } ind + ' ' + LE + - ind + ' ' + LE + + ind + ' ' + LE + ind + ' ' + LE + - ind + ' ' + LE + + ind + ' ' + LE + ind + ' ' + LE + ind + ' ' + LE + ind + ' ' + LE + @@ -3256,7 +3305,7 @@ begin ind + ' ' + LE + ind + ' ' + LE + ind + ' ' + LE + - ind + ' ' + LE + + ind + ' ' + LE + ind + ' ' + LE + ind + ' ' + LE + ind + ' ' + LE + @@ -3265,7 +3314,7 @@ begin ind + ' ' + LE + ind + ' ' + LE + - ind + ' ' + LE + + ind + ' ' + LE + ind + ' ' + LE + ind + ' ' + LE + ind + ' ' + LE + @@ -3316,7 +3365,7 @@ begin ind + ' ' + LE + ind + ' ' + LE + ind + ' ' + LE + - ind + ' ' + LE + + ind + ' ' + LE + ind + ' ' + LE + ind + ' ' + LE + ind + ' ' + LE + @@ -3327,6 +3376,7 @@ begin ind + ' ' + LE + ind + ' ' + LE + ind + ' ' + LE + + ind + '' + LE ); end; @@ -3337,9 +3387,9 @@ var begin for i := 0 to TsWorkbook(Writer.Workbook).GetChartCount - 1 do begin - WriteChartRelsXML(FSChartRels[i], i); - WriteChartStylesXML(FSChartStyles[i], i); - WriteChartColorsXML(FSChartColors[i], i); + // WriteChartRelsXML(FSChartRels[i], i); + // WriteChartStylesXML(FSChartStyles[i], i); + // WriteChartColorsXML(FSChartColors[i], i); WriteChartXML(FSCharts[i], i); end; end; @@ -3355,7 +3405,7 @@ begin ind + '' + LE + ind + ' ' + LE ); - +{ AppendToStream(AStream, GetChartFillAndLineXML(AIndent + 2, ATitle.Background, ATitle.Border) ); @@ -3384,10 +3434,11 @@ begin ind + ' ' + LE + ind + ' ' + LE ); - + } AppendToStream(AStream, ind + '' + LE ); + end; {$ENDIF}