HotXLS 文件

TXLSXChart 與 TXLSXCharts 類別

TXLSXCharts 是 TXLSXWorksheet.Charts 公開的內嵌圖表集合,而 TXLSXChart 負責圖表位置、座標軸與數列

宣告

function TXLSXCharts.Add: TXLSXChart; overload;
function TXLSXCharts.Add(AChartType: TXLSXChartType; const ATitle: WideString; AFromRow, AFromCol, AToRow, AToCol: Integer): TXLSXChart; overload;
function TXLSXChart.AddSeries(const AName, ACategories, AValues: WideString): TXLSXChartSeries;
function TXLSXChart.AddPlotGroup(AChartType: TXLSXChartType; AAxisGroup: TXLSXChartAxisGroup = xlsxAxisPrimary): TXLSXChartPlotGroup;
procedure TXLSXChart.ClearSeries;
procedure TXLSXChart.ClearPlotGroups;
procedure TXLSXChart.ClearPreservedXml;
property TXLSXChart.ChartType: TXLSXChartType;
property TXLSXChart.HasPreservedXml: Boolean;
property TXLSXChart.CategoryAxis, ValueAxis: TXLSXChartAxis;
property TXLSXChart.SecondaryCategoryAxis, SecondaryValueAxis: TXLSXChartAxis;
property TXLSXChart.SeriesAxis: TXLSXChartAxis;
property TXLSXChart.TitleTextStyle, LegendTextStyle: TXLSXChartTextStyle;
property TXLSXChart.PlotAreaLayout, TitleLayout, LegendLayout: TXLSXChartLayout;
property TXLSXChart.ShowLegend, TitleOverlay, LegendOverlay: Boolean;
property TXLSXChart.LegendPosition: TXLSXChartLegendPosition;
property TXLSXChart.Series[Index: Integer]: TXLSXChartSeries;
property TXLSXChart.PlotGroups[Index: Integer]: TXLSXChartPlotGroup;
property TXLSXChart.RadarStyle: TXLSXChartRadarStyle;
property TXLSXChart.HoleSize, FirstSliceAng: Integer;
property TXLSXChart.OfPieType: TXLSXChartOfPieType;
property TXLSXChart.OfPieSplitType: TXLSXChartOfPieSplitType;
property TXLSXChart.OfPieSplitPos, OfPieSecondPieSize, OfPieGapWidth: Integer;
property TXLSXChart.RoundedCorners, AutoTitleDeleted: Boolean;
property TXLSXChart.ChartBackgroundColor, ChartBorderColor, PlotAreaBackgroundColor: LongWord;
property TXLSXChart.ProtectionEnabled: Boolean;
property TXLSXChart.ProtectedChartObjects, ProtectedDataEditing, ProtectedFormatting, ProtectedSelection, ProtectedUserInterface: Boolean;
property TXLSXChart.ShowDataTableHorzBorder, ShowDataTableVertBorder, ShowDataTableOutline: Boolean;
property TXLSXChart.HasDropLines, HasSeriesLines: Boolean;
property TXLSXChart.OwnerSheet: TXLSXWorksheet;

圖表成員

Title, CategoryAxisTitle and ValueAxisTitle圖表與主要座標軸的標題文字
TitleTextStyle and TitleLayout強型別的圖表標題字型、色彩、強調、旋轉、覆蓋與手動位置
ShowLegend, LegendPosition, LegendTextStyle and LegendLayout圖例的顯示、位置、覆蓋、字型與手動位置
PlotAreaLayout以正規化的 ChartML 座標手動指定內部或外部繪圖矩形
FromRow, FromCol, ToRow and ToCol以 1 為基數的工作表錨定矩形
CategoryAxis and ValueAxis主要類別軸(或 X 軸)與主要數值軸(或 Y 軸)
SecondaryCategoryAxis and SecondaryValueAxis次要繪圖群組使用的頂部與右側座標軸
SeriesAxis三維類別圖表使用的深度軸
PlotGroups有序的圖表家族群組,讓組合圖得以實現,而 Series 仍維持扁平化的相容性檢視
HasPreservedXml回報圖表是否保留原始 ChartML,以利進行擴充安全的往返讀寫
ShowDataTable and ShowDataTableKeys資料表的顯示控制
ShowDataTableHorzBorder, ShowDataTableVertBorder and ShowDataTableOutline各自獨立的資料表框線開關,分別寫出 c:showHorzBorder、c:showVertBorder 與 c:showOutline;三者預設都是 True
HasDropLines and HasSeriesLines折線圖的跌落線會把每個資料點連到類別軸;數列線則連接堆疊直條或折線數列的區段
HasUpDownBars, UpDownGapWidth and HasHiLowLines折線圖與股票圖的顯示控制
Rotation3DX, Rotation3DY, Elevation3D, Perspective3D and RightAngleAxes3D三維圖表的視角控制
HeightPercent3D, DepthPercent3D and GapDepth3D三維繪圖的高度、深度與數列間距百分比
RadarStyle目前圖表類型可選用的雷達圖家族變體
HoleSize and FirstSliceAng圓環圖的內半徑百分比(10..90),以及圓餅圖與圓環圖的起始角度(度)
OfPieType, OfPieSplitType, OfPieSplitPos, OfPieSecondPieSize and OfPieGapWidth圓餅圖中的圓餅與圓餅圖中的直條的版面配置、分割規則,以及主要與次要繪圖的大小
RoundedCorners切換圖表空間是否使用圓角
AutoTitleDeleted抑制由單一數列名稱衍生的自動標題,並寫出 c:autoTitleDeleted
ChartBackgroundColor, ChartBorderColor and PlotAreaBackgroundColor圖表與繪圖區的填滿和框線色彩,以 $RRGGBB 值表示;0 表示保留佈景主題預設值
ProtectionEnabled, ProtectedChartObjects, ProtectedDataEditing, ProtectedFormatting, ProtectedSelection and ProtectedUserInterface圖表保護開關,以及它以 c:protection 寫出的各項編輯限制
OwnerSheet擁有此圖表之工作表的唯讀參考

圖表類型與組合群組

TXLSXChartType 涵蓋直條圖、橫條圖、折線圖、圓餅圖、區域圖、圓環圖、散佈圖、泡泡圖、雷達圖、股票圖、圓餅圖中的圓餅、曲面圖、3D 曲面圖、3D 直條圖、3D 橫條圖、3D 折線圖、3D 圓餅圖與 3D 區域圖等家族
第一個繪圖群組是由 ChartType 與 AddSeries 控制的相容性群組;其他群組用 AddPlotGroup 加入,可指定 xlsxAxisPrimary 或 xlsxAxisSecondary

數列、趨勢線與誤差線

function TXLSXChartSeries.AddTrendline(AType: TXLSXChartTrendlineType): TXLSXChartTrendline;
function TXLSXChartSeries.AddErrorBar(ADir: TXLSXChartErrDir): TXLSXChartErrBar;
property TXLSXChartSeries.Trendlines[Index: Integer]: TXLSXChartTrendline;
property TXLSXChartSeries.ErrBarX, ErrBarY: TXLSXChartErrBar;
property TXLSXChartTrendline.TrendlineType: TXLSXChartTrendlineType;
property TXLSXChartTrendline.DispEq, DispRSqr: Boolean;
property TXLSXChartTrendline.Order, Period: Integer;
property TXLSXChartErrBar.ValueType: TXLSXChartErrValType;
property TXLSXChartErrBar.Value, PlusValue, MinusValue: Double;
TrendlineType線性、指數、對數、多項式、冪次或移動平均趨勢線
DispEq and DispRSqr在圖表上顯示公式與 R 平方值
Order and Period對應趨勢線類型的多項式階數或移動平均期數
ValueType固定、百分比、標準差、標準誤或自訂的誤差量
NoEndCap隱藏誤差線兩端的端帽

座標軸與資料標籤成員

LogBase and Orientation對數刻度的基數,以及正向或反向的座標軸排序
MajorGridlines and MinorGridlines格線的顯示控制
MinValue, MaxValue, MajorUnit and MinorUnit在支援的情況下明確指定縮放界限與刻度間距
CrossesAt, TickLblPos and DispUnits座標軸交叉位置、標籤放置與顯示單位
ShowValue, ShowCategoryName, ShowSeriesName, ShowLegendKey, ShowPercent and ShowBubbleSize每個數列各自的資料標籤元件
Separator多個資料標籤元件同時顯示時使用的分隔文字

保留不支援的 ChartML

啟用 TXLSXWorkbook.PreserveUnsupportedParts(這是預設值)時,匯入的圖表會保留原始 ChartML。未經更動的圖表會原樣重播這份 XML、不做正規化;而強型別屬性的修改,則會把 HotXLS 產生的模型疊加到原始樹上
編輯已知屬性時,未知命名空間、markup-compatibility AlternateContent、擴充功能清單、自訂樣式與未建模的格式,都會繼續附著在原本的圖表物件上。呼叫 ClearPreservedXml 可捨棄單一圖表保留的 XML,改為只從強型別屬性重新產生

範例

var
  Chart: TXLSXChart;
  Secondary: TXLSXChartPlotGroup;
begin
  Chart := Sheet.Charts.Add(xlsxChartLine, 'Monthly sales', 2, 5, 18, 12);
  Chart.AddSeries('Sales', 'Sheet1!$A$2:$A$13', 'Sheet1!$B$2:$B$13');
  Chart.ValueAxisTitle := 'Amount';
  Chart.TitleTextStyle.Name := 'Aptos Display';
  Chart.TitleTextStyle.Size := 18;
  Chart.TitleTextStyle.Bold := True;
  Chart.PlotAreaLayout.Target := xlsxChartLayoutInner;
  Chart.PlotAreaLayout.SetPositionAndSize(0.12, 0.18, 0.72, 0.64);
  Chart.ShowLegend := True;
  Chart.LegendPosition := xlsxChartLegendBottom;
  Chart.LegendTextStyle.Size := 10;
  Secondary := Chart.AddPlotGroup(xlsxChartColumn, xlsxAxisSecondary);
  Secondary.AddSeries('Margin', 'Sheet1!$A$2:$A$13', 'Sheet1!$C$2:$C$13');
  Chart.SecondaryValueAxis.Title := 'Margin percent';
  Chart.Series[0].AddTrendline(xlsxTrendLinear).DispRSqr := True;
  Chart.Series[0].ShowValue := True;
end;

另請參閱