HotXLS Docs

TXLSXChartLayout 클래스

TXLSXChartLayout은 플롯 영역, 차트·축 제목, 범례를 위한 필드 보존형 수동 레이아웃을 저장합니다

선언

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;

좌표 모델

X, Y, Width, Height는 차트 사각형을 기준으로 정규화됩니다. edge X와 Y는 왼쪽·위쪽 좌표이고, edge width·height는 오른쪽·아래쪽 좌표입니다. factor X와 Y는 자동 위치에 대한 오프셋이고, factor width·height는 차트 상대 크기입니다
이 모델은 각 필드와 모드를 독립적으로 유지합니다. 가져올 때 누락된 항목은 누락된 채로 남고, 유효하지 않은 숫자 토큰도 변경 없이 저장되며, 렌더링 시에는 자동 지오메트리로 폴백합니다
제목 레이아웃은 X와 Y만 담고 자동으로 측정된 크기를 유지할 수 있습니다. 플롯 영역과 범례 레이아웃은 네 좌표를 모두 요구합니다
SetPositionAndSize는 네 값을 한 번에 할당하고 모드를 존재 표시한 뒤 레이아웃을 활성화합니다. 개별 좌표 setter도 레이아웃을 활성화합니다

모드와 대상

xlsxChartLayoutEdge차트 가장자리로부터의 위치. X와 Y의 기본값입니다
xlsxChartLayoutFactor크기 또는 오프셋 계수. width와 height의 기본값입니다
Target안쪽 또는 바깥쪽 플롯 사각형. PlotAreaLayout에서만 의미가 있습니다

해석 및 변환

TXLSXChartLayoutResolver는 제목, 범례, 안쪽·바깥쪽 플롯 영역, 축 제목 사각형을 페이지 매기기, SVG, PDF, 이미지, 미리 보기, 인쇄, 뷰어, HTML 출력용으로 한 번에 해석합니다. 잘못되었거나 불완전한 지오메트리는 자동 사각형을 유지하고, 유효하지만 범위를 벗어난 사각형은 크기를 바꾸지 않은 채 차트 안의 가장 가까운 위치로 이동합니다
ODF 변환은 해석된 지오메트리를 절대 차트 거리로 매핑합니다. 제목과 범례는 svg:x와 svg:y를 사용하고, 플롯 영역은 svg:width와 svg:height도 사용합니다. 수동 ODF 범례는 chart:legend-position을 생략합니다. 이 속성은 절대 좌표를 덮어쓰기 때문입니다

예제

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

참고 항목