Documentație HotXLS

Metoda AddChartSheet

Adaugă programatic o foaie diagramă BIFF8 la registrul de lucru, returnând noul tab TXLSWorksheet. Anterior, foile diagramă puteau fi introduse doar prin fișiere XLS pre-construite; această metodă permite crearea de diagrame cu mai multe serii legate la date de foaie prin cod Pascal curat. (Disponibil din v2.42.0.)

Enumerarea TXLSChartType

Selectează tipul diagramei. Re-exportat din lxHandle astfel încât codul utilizator nu trebuie să importe direct unitatea constructor de diagrame
type
  TXLSChartType = (
    xlsChartTypeColumn,
    xlsChartTypeBar,
    xlsChartTypeLine,
    xlsChartTypePie);

Înregistrarea TXLSChartSeriesInfo

Transportă o declarație de serie unică pentru supraîncărcarea cu 6 parametri. Categories și Values sunt șiruri de interval în stil A1 (de ex. 'Sheet1!$B$2:$B$5')
type
  TXLSChartSeriesInfo = record
    Name        : WideString;
    Categories  : WideString;
    Values      : WideString;
  end;

Sintaxă

Cinci supraîncărcări acoperă definiții de foi diagramă progresiv mai bogate:
// 1) v2.41.0 — name only; default column chart, no titles, no series.
function AddChartSheet(const Name: WideString): TXLSWorksheet;

// 2) v2.41.0 — name + chart type.
function AddChartSheet(
  const Name : WideString;
  ChartType   : TXLSChartType): TXLSWorksheet;

// 3) v2.41.0 — + chart title.
function AddChartSheet(
  const Name : WideString;
  ChartType   : TXLSChartType;
  const Title: WideString): TXLSWorksheet;

// 4) v2.41.0 — + category-axis title + value-axis title.
function AddChartSheet(
  const Name       : WideString;
  ChartType         : TXLSChartType;
  const Title      : WideString;
  const CatAxisTitle: WideString;
  const ValAxisTitle: WideString): TXLSWorksheet;

// 5) v2.42.0 — + array of series (Name + Categories range + Values range).
function AddChartSheet(
  const Name        : WideString;
  ChartType          : TXLSChartType;
  const Title       : WideString;
  const CatAxisTitle: WideString;
  const ValAxisTitle: WideString;
  const Series      : array of TXLSChartSeriesInfo): TXLSWorksheet;

Observații

Fluxul de diagramă emis acoperă cadrarea BIFF8 pe care spec-ul o necesită — BOF (dt=$0020), Chart / PlotGrowth / Frame / Series / SheetProperties / AxesUsed / AxisParent (POS + axa categorii + axa valori) cu formatare automată a legendei dacă sunt prezente mai mult de o serie

Legarea numelui seriei (v2.42.0): fiecare Series[i].Name nevidă este scrisă în fluxul diagramei ca etichetă de serie literală via un token PTG tStr pe înregistrarea seriei

Legarea intervalului seriei (v2.47.0): începând cu v2.47.0, șirurile de interval A1 Categories și Values sunt compilate în referințe reale de celule tArea3D astfel încât Excel poate recalcula sau extinde intervalele de date

TXLSWorksheet returnat apare în colecția Sheets și primește o intrare de foaie diagramă la salvare. Metodele la nivel de celulă pe rezultat nu sunt suportate — utilizați indexul foii sau obiectul foaie pentru a naviga la el

Exemplu

Acest exemplu construiește un registru de lucru cu o foaie de date și o diagramă cu coloane legată la două coloane din foaia de date

var
  Series: array of TXLSChartSeriesInfo;
begin
  // Populate cells on Sheet1.
  Workbook.Sheets[1].Name := 'Data';
  // ... fill A1:B5 with categories + values ...

  SetLength(Series, 1);
  Series[0].Name       := 'Quarterly Revenue';
  Series[0].Categories := 'Data!$A$2:$A$5';
  Series[0].Values     := 'Data!$B$2:$B$5';

  Workbook.Sheets.AddChartSheet(
    'Revenue',
    xlsChartTypeColumn,
    'Quarterly Revenue',
    'Quarter',
    'USD',
    Series);

  Workbook.SaveAs('Revenue.xls', xlExcel97);
end;

Limitări

Detaliile de formatare per-tip de diagramă (lățimea golurilor, suprapunerea barelor, dimensiunea găurii de plăcintă, stilul markerilor) sunt emise cu valorile implicite ale constructorului de diagrame — nu sunt încă expuse pe API. Salvați și redeschideți cu Excel pentru a aplica modificările de formatare

Vezi și