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