HotXLS dokumentáció

AddChartSheet metódus

Programozottan hozzáfűz egy BIFF8 diagramlapot a munkafüzethez, visszaadja az új TXLSWorksheet fület. Korábban a diagramlapok csak opakul őrizhetők meg egy betöltés-mentés körút során a TXLSCustomChart-on keresztül; ez a metódus teljes diagramrészfolyamot ír közvetlenül a SaveAs(xlExcel97)-be. Az Excel a kért típusú diagramfülként nyitja meg az eredményt. Elérhető v2.41.0 óta (10. ütemterv, 1. fázis); a sorozattömb-túlterhelés a v2.42.0-ban következik

TXLSChartType felsorolás

Kiválasztja a diagram típusát. A lxHandle-ből újra exportálva, így a felhasználói kódnak nem kell közvetlenül importálnia a diagram-készítő egységet
type
  TXLSChartType = (
    xlsChartTypeColumn,
    xlsChartTypeBar,
    xlsChartTypeLine,
    xlsChartTypePie);

TXLSChartSeriesInfo rekord

Egyetlen sorozatdeklarációt hordoz a 6-paraméteres túlterheléshez. A Categories és a Values A1 tartomány karakterláncok (pl. 'Sheet1!$B$2:$B$5')
type
  TXLSChartSeriesInfo = record
    Name        : WideString;
    Categories  : WideString;
    Values      : WideString;
  end;

Szintaxis

Öt túlterhelés egyre gazdagabb diagramlap-definíciókat fed le:
// 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;

Megjegyzések

Az emittált diagramrészfolyam tartalmazza a BIFF8 keretezést, amelyet a specifikáció megkövetel — BOF (dt=$0020), Chart / PlotGrowth / Frame / Series / SheetProperties / AxesUsed / AxisParent (POS + kategóriatengely + értéktengely + PlotArea + Frame + ChartFormat + diagramtípus-rekord + ChartFormatLink + Legend), EOF. A meglévő diagramlap körút a TXLSCustomChart-on keresztül változatlan marad

Sorozatnév-kötés (v2.42.0): minden nem üres Series[i].Name diagramrészfolyamba kerül literális sorozatcímkeként egy tStr PTG token segítségével a sorozatnév BRAI-n (id=2). Az Excel ezt a feliratot a jelmagyarázatban és a sorozatválasztóban használja, így a többsorozatos diagramok megfelelő feliratokat mutatnak a "Series1 / Series2" alapértelmezett helyőrzők helyett

Sorozattartomány-kötés (v2.47.0): a v2.47.0-tól kezdve a Categories és Values A1 tartomány karakterláncok valódi tArea3D cellatartomány-hivatkozásokba kerülnek a BRAI-ban, a képlet-fordítón és a munkafüzet EXTERNSHEET hivatkozási táblán keresztül. A v2.47.0 előtt ez a két mező elfogadásra került az API-ban, de cce=0 helyőrzőként lett emittálva, így a megjelenített diagram üres volt. A v2.42.0 meglévő hívói, akik üresen hagyták a Categories / Values mezőket, nincsenek érintve

A visszaadott TXLSWorksheet megjelenik a Sheets gyűjteményben és diagramlap boundsheet bejegyzést kap mentéskor. A cella szintű metódusok az eredményen nem támogatottak — a fogadó munkalap diagram-tároló, nem adatlap

Példa

Ez a példa munkafüzetet épít adatlappal és oszlopdiagrammal, amely az adatlap két oszlopára van kötve

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;

Korlátozások

A diagramtípus-formázás részletei (hézag szélességi, sáv átlapolás, tortaszelet mérete, jelölőstílus) még a diagram-készítő alapértelmezéseivel vannak emittálva — az API még nem teszi elérhetővé. A mentés és újranyitás az Excel-lel megőrzi a diagramlap jelenlétét, típusát, feliratát, tengelycímeit, sorozatfeliratait és (v2.47.0-tól) a sorozat adatkötését

Lásd még