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 为左上角坐标,边宽、边高即右、下坐标;系数(factor)的 X、Y 在自动位置上做偏移,系数宽高则是相对图表的尺寸
模型会独立保留每个字段和模式。已加载的省略设置保持省略,无效的数字标记在保存时原样保留,渲染时则回退到自动几何
标题布局可以只包含 X 和 Y 并保留自动测量的尺寸;绘图区和图例布局则需要全部四个坐标
SetPositionAndSize 一次性赋全部四个值,把它们的模式标记为存在并启用布局;各个坐标的单独 setter 也会启用布局

模式与目标

xlsxChartLayoutEdge相对图表边的位置,X 和 Y 默认采用
xlsxChartLayoutFactor尺寸或偏移系数,宽和高默认采用
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);

请参阅