HotXLS Docs

TXLSXChartLayout class

TXLSXChartLayout stores a complete normalized manual layout for plot areas, chart or axis titles and legends

Declaratie

type
  TXLSXChartLayoutTarget = (xlsxChartLayoutOuter, xlsxChartLayoutInner);
  TXLSXChartLayoutMode = (xlsxChartLayoutFactor, xlsxChartLayoutEdge);

  TXLSXChartLayout = class
    property Enabled: Boolean;
    property HasTarget: Boolean;
    property HasXMode, HasYMode, HasWidthMode, HasHeightMode: Boolean;
    property HasX, HasY, HasWidth, HasHeight: Boolean;
    property Target: TXLSXChartLayoutTarget;
    property XMode, YMode, WidthMode, HeightMode: TXLSXChartLayoutMode;
    property X, Y, Width, Height: Double;
    procedure ClearTarget;
    procedure ClearXMode;
    procedure ClearYMode;
    procedure ClearWidthMode;
    procedure ClearHeightMode;
    procedure ClearX;
    procedure ClearY;
    procedure ClearWidth;
    procedure ClearHeight;
    procedure SetPositionAndSize(AX, AY, AWidth, AHeight: Double);
    procedure Assign(Source: TXLSXChartLayout);
    procedure Clear;
  end;

Coördinatenmodel

X, Y, Width and Height are normalized against the chart rectangle Width and height are constrained to 0 through 1, while factor-based X and Y may use -1 through 1
Het model bewaart elk veld en elke modus onafhankelijk; weglatingen in geladen bestanden blijven weggelaten en ongeldige numerieke tokens overleven een ongewijzigde save, terwijl rendering terugvalt op automatische geometrie
Titellayouts mogen alleen X en Y bevatten en behouden de automatisch gemeten grootte; layouts van plotgebied en legenda vereisen alle vier de coördinaten
SetPositionAndSize assigns all four values and enables the layout in one call This satisfies Excel's requirement that manual coordinates be emitted as a complete group

Modi en target

xlsxChartLayoutEdgePosition from the chart edge, used by default for X and Y
xlsxChartLayoutFactorSize or offset factor, used by default for width and height
TargetInner or outer plot rectangle and meaningful only for PlotAreaLayout

Resolutie en conversie

TXLSXChartLayoutResolver leidt de rectangles voor titel, legenda, binnen- en buiten-plotarea en as-titels één keer af voor paginering, SVG, PDF, afbeeldings-, preview-, print-, viewer- en HTML-uitvoer; ongeldige of onvolledige geometrie houdt de automatische rectangle aan, terwijl een geldige rectangle buiten de grafiek naar de dichtstbijzijnde positie binnen de grafiek verschuift zonder van grootte te veranderen
ODF-conversie mapt de afgeleide geometrie op absolute grafiekafstanden; titel en legenda gebruiken svg:x en svg:y, de plotarea bovendien svg:width en svg:height; een handmatige ODF-legenda laat chart:legend-position weg, omdat dat attribuut absolute coördinaten overschrijft

Voorbeeld

Chart.PlotAreaLayout.Target := xlsxChartLayoutInner;
Chart.PlotAreaLayout.SetPositionAndSize(0.12, 0.18, 0.72, 0.64);
Chart.TitleLayout.SetPositionAndSize(0.1, 0.02, 0.6, 0.12);
Chart.LegendLayout.SetPositionAndSize(0.2, 0.84, 0.6, 0.1);

Zie ook