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