HotXLS Docs

TXLSXChartLayout class

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

Declaration

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;

Coordinate model

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
Модель зберігає кожне поле і кожен режим незалежно: завантажені пропуски залишаються пропусками, а недійсні числові токени переживають збереження без змін, тоді як рендеринг повертається до автоматичної геометрії
Макети заголовків можуть містити лише X і Y та зберігають автоматично виміряний розмір; макети області побудови й легенди вимагають усіх чотирьох координат
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

Modes and 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

Resolution and conversion

TXLSXChartLayoutResolver обчислює прямокутники заголовка, легенди, внутрішньої та зовнішньої областей побудови, а також заголовків осей один раз для виводу в pagination, SVG, PDF, зображення, preview, друк, viewer і HTML; недійсна або неповна геометрія залишає автоматичний прямокутник, а коректний прямокутник поза межами діаграми зміщується до найближчої позиції всередині діаграми без зміни розміру
Перетворення в ODF відображає розв'язану геометрію в абсолютні відстані діаграми: заголовок і легенда використовують svg:x і svg:y, а область побудови — також svg:width і svg:height; ручна легенда ODF пропускає chart:legend-position, оскільки цей атрибут перекриває абсолютні координати

Example

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);

See also