You've already forked lazarus-ccr
fpspreadsheet: Prepare ooxml chart reader/writer infrastructure.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@9109 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -33,7 +33,7 @@
|
||||
This package is all you need if you don't want graphical components (such as grids and charts)."/>
|
||||
<License Value="LGPL with static linking exception. This is the same license as is used in the LCL (Lazarus Component Library)."/>
|
||||
<Version Major="1" Minor="17"/>
|
||||
<Files Count="59">
|
||||
<Files Count="60">
|
||||
<Item1>
|
||||
<Filename Value="source\fps.inc"/>
|
||||
<Type Value="Include"/>
|
||||
@ -309,6 +309,10 @@ This package is all you need if you don't want graphical components (such a
|
||||
<Filename Value="source\common\fpsopendocumentchart.pas"/>
|
||||
<UnitName Value="fpsopendocumentchart"/>
|
||||
</Item59>
|
||||
<Item60>
|
||||
<Filename Value="source\common\xlsxooxmlchart.pas"/>
|
||||
<UnitName Value="xlsxooxmlchart"/>
|
||||
</Item60>
|
||||
</Files>
|
||||
<CompatibilityMode Value="True"/>
|
||||
<i18n>
|
||||
|
@ -41,16 +41,10 @@ uses
|
||||
Classes, SysUtils,
|
||||
laz2_xmlread, laz2_DOM,
|
||||
avglvltree, math, dateutils, contnrs,
|
||||
{$IF FPC_FULLVERSION >= 20701}
|
||||
zipper,
|
||||
{$ELSE}
|
||||
fpszipper,
|
||||
{$ENDIF}
|
||||
{$IFDEF FPS_PATCHED_ZIPPER} fpszipper, {$ELSE} zipper, {$ENDIF}
|
||||
fpstypes, fpsReaderWriter, fpsUtils, fpsHeaderFooterParser,
|
||||
fpsNumFormat, fpsXMLCommon,
|
||||
{$IFDEF FPS_CHARTS}
|
||||
fpsChart,
|
||||
{$ENDIF}
|
||||
{$IFDEF FPS_CHARTS} fpsChart, {$ENDIF}
|
||||
fpsPagelayout;
|
||||
|
||||
type
|
||||
|
@ -9,10 +9,10 @@ interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, StrUtils, Contnrs, FPImage,
|
||||
{$IF FPC_FULLVERSION >= 20701}
|
||||
zipper,
|
||||
{$ELSE}
|
||||
{$IFDEF FPS_PATCHED_ZIPPER}
|
||||
fpszipper,
|
||||
{$ELSE}
|
||||
zipper,
|
||||
{$ENDIF}
|
||||
laz2_xmlread, laz2_DOM,
|
||||
fpsTypes, fpSpreadsheet, fpsChart, fpsUtils, fpsNumFormat,
|
||||
|
@ -37,13 +37,16 @@ interface
|
||||
uses
|
||||
Classes, SysUtils,
|
||||
laz2_xmlread, laz2_DOM, avglvltree,
|
||||
{$IFDEF FPS_PATCHED_ZIPPER}
|
||||
{$ifdef FPS_PATCHED_ZIPPER}
|
||||
fpszipper,
|
||||
{$ELSE}
|
||||
{$else}
|
||||
zipper,
|
||||
{$ENDIF}
|
||||
{$endif}
|
||||
fpsTypes, fpsUtils, fpsReaderWriter, fpsNumFormat, fpsPalette,
|
||||
fpsConditionalFormat,
|
||||
{$ifdef FPS_CHARTS}
|
||||
fpsChart,
|
||||
{$ENDIF}
|
||||
fpsxmlcommon, xlsCommon;
|
||||
|
||||
type
|
||||
@ -52,6 +55,9 @@ type
|
||||
|
||||
TsSpreadOOXMLReader = class(TsSpreadXMLReader)
|
||||
private
|
||||
{$ifdef FPS_CHARTS}
|
||||
FChartReader: TsBasicSpreadChartReader;
|
||||
{$endif}
|
||||
FDateMode: TDateMode;
|
||||
FPointSeparatorSettings: TFormatSettings;
|
||||
FSharedStrings: TStringList;
|
||||
@ -155,6 +161,9 @@ type
|
||||
|
||||
TsSpreadOOXMLWriter = class(TsCustomSpreadWriter)
|
||||
private
|
||||
{$IFDEF FPS_CHARTS}
|
||||
FChartWriter: TsBasicSpreadChartWriter;
|
||||
{$ENDIF}
|
||||
FFirstNumFormatIndexInFile: Integer;
|
||||
vmlDrawingCounter: Integer;
|
||||
protected
|
||||
@ -283,6 +292,7 @@ type
|
||||
|
||||
public
|
||||
constructor Create(AWorkbook: TsBasicWorkbook); override;
|
||||
destructor Destroy; override;
|
||||
{ General writing methods }
|
||||
procedure WriteStringToFile(AFileName, AString: string);
|
||||
procedure WriteToStream(AStream: TStream; AParams: TsStreamParams = []); override;
|
||||
@ -308,7 +318,9 @@ implementation
|
||||
uses
|
||||
variants, strutils, dateutils, math, lazutf8, LazFileUtils, uriparser, typinfo,
|
||||
{%H-}fpsPatches, fpSpreadsheet, fpsCrypto, fpsExprParser,
|
||||
fpsStrings, fpsStreams, fpsClasses, fpsImages, fpsChart;
|
||||
fpsStrings, fpsStreams, fpsClasses,
|
||||
{$ifdef FPS_CHARTS}xlsxooxmlChart,{$endif}
|
||||
fpsImages;
|
||||
|
||||
const
|
||||
{ OOXML general XML constants }
|
||||
@ -830,6 +842,11 @@ end;
|
||||
constructor TsSpreadOOXMLReader.Create(AWorkbook: TsBasicWorkbook);
|
||||
begin
|
||||
inherited Create(AWorkbook);
|
||||
|
||||
{$ifdef FPS_CHARTS}
|
||||
FChartReader := TsSpreadOOXMLChartReader.Create(self);
|
||||
{$endif}
|
||||
|
||||
FDateMode := XlsxSettings.DateMode;
|
||||
|
||||
FSharedStrings := TStringList.Create;
|
||||
@ -898,6 +915,10 @@ begin
|
||||
|
||||
FPalette.Free;
|
||||
|
||||
{$ifdef FPS_CHARTS}
|
||||
FChartReader.Free;
|
||||
{$endif}
|
||||
|
||||
inherited Destroy;
|
||||
end;
|
||||
|
||||
@ -4629,6 +4650,10 @@ constructor TsSpreadOOXMLWriter.Create(AWorkbook: TsBasicWorkbook);
|
||||
begin
|
||||
inherited Create(AWorkbook);
|
||||
|
||||
{$ifdef FPS_CHARTS}
|
||||
FChartWriter := TsSpreadOOXMLChartWriter.Create(self);
|
||||
{$endif}
|
||||
|
||||
// Initial base date in case it won't be set otherwise.
|
||||
// Use 1900 to get a bit more range between 1900..1904.
|
||||
FDateMode := XlsxSettings.DateMode;
|
||||
@ -4641,6 +4666,15 @@ begin
|
||||
end;
|
||||
|
||||
|
||||
destructor TsSpreadOOXMLWriter.Destroy;
|
||||
begin
|
||||
{$ifdef FPS_CHARTS}
|
||||
FChartWriter.Free;
|
||||
{$endif}
|
||||
inherited;
|
||||
end;
|
||||
|
||||
|
||||
{@@ ----------------------------------------------------------------------------
|
||||
Looks for the combination of border attributes of the given format record in
|
||||
the FBorderList and returns its index.
|
||||
|
88
components/fpspreadsheet/source/common/xlsxooxmlchart.pas
Normal file
88
components/fpspreadsheet/source/common/xlsxooxmlchart.pas
Normal file
@ -0,0 +1,88 @@
|
||||
unit xlsxooxmlChart;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
{$include ..\fps.inc}
|
||||
|
||||
interface
|
||||
|
||||
{$ifdef FPS_CHARTS}
|
||||
|
||||
uses
|
||||
Classes, SysUtils, StrUtils, Contnrs, FPImage,
|
||||
{$ifdef FPS_PATCHED_ZIPPER}fpszipper,{$else}zipper,{$endif}
|
||||
laz2_xmlread, laz2_DOM,
|
||||
fpsTypes, fpSpreadsheet, fpsChart, fpsUtils, fpsNumFormat,
|
||||
fpsReaderWriter, fpsXMLCommon;
|
||||
|
||||
type
|
||||
|
||||
{ TsSpreadOOXMLChartReader }
|
||||
|
||||
TsSpreadOOXMLChartReader = class(TsBasicSpreadChartReader)
|
||||
private
|
||||
FPointSeparatorSettings: TFormatSettings;
|
||||
|
||||
protected
|
||||
|
||||
public
|
||||
constructor Create(AReader: TsBasicSpreadReader); override;
|
||||
destructor Destroy; override;
|
||||
|
||||
end;
|
||||
|
||||
TsSpreadOOXMLChartWriter = class(TsBasicSpreadChartWriter)
|
||||
private
|
||||
FPointSeparatorSettings: TFormatSettings;
|
||||
|
||||
protected
|
||||
|
||||
public
|
||||
constructor Create(AWriter: TsBasicSpreadWriter); override;
|
||||
destructor Destroy; override;
|
||||
|
||||
end;
|
||||
|
||||
{$ENDIF}
|
||||
|
||||
implementation
|
||||
|
||||
{$IFDEF FPS_CHARTS}
|
||||
|
||||
uses
|
||||
xlsxooxml;
|
||||
|
||||
{ TsSpreadOOXMLChartReader }
|
||||
|
||||
constructor TsSpreadOOXMLChartReader.Create(AReader: TsBasicSpreadReader);
|
||||
begin
|
||||
inherited Create(AReader);
|
||||
|
||||
FPointSeparatorSettings := SysUtils.DefaultFormatSettings;
|
||||
FPointSeparatorSettings.DecimalSeparator:='.';
|
||||
end;
|
||||
|
||||
destructor TsSpreadOOXMLChartReader.Destroy;
|
||||
begin
|
||||
inherited;
|
||||
end;
|
||||
|
||||
|
||||
{ TsSpreadOOXMLChartWriter }
|
||||
|
||||
constructor TsSpreadOOXMLChartWriter.Create(AWriter: TsBasicSpreadWriter);
|
||||
begin
|
||||
inherited Create(AWriter);
|
||||
|
||||
FPointSeparatorSettings := SysUtils.DefaultFormatSettings;
|
||||
FPointSeparatorSettings.DecimalSeparator:='.';
|
||||
end;
|
||||
|
||||
destructor TsSpreadOOXMLChartWriter.Destroy;
|
||||
begin
|
||||
inherited;
|
||||
end;
|
||||
|
||||
{$ENDIF}
|
||||
|
||||
end.
|
||||
|
Reference in New Issue
Block a user