Dokumentasi HotXLS

Metode AddChartSheet

Secara terprogram menambahkan lembar grafik BIFF8 ke workbook, mengembalikan tab TXLSWorksheet baru. Sebelumnya, lembar grafik hanya dapat dipertahankan secara opak dalam round-trip muat-simpan melalui TXLSCustomChart; metode ini menulis substream grafik lengkap langsung ke SaveAs(xlExcel97). Excel membuka hasilnya sebagai tab grafik dari jenis yang diminta. Tersedia sejak v2.41.0 (Peta Jalan #10 Fase 1); overload array-seri menyusul di v2.42.0

Enumerasi TXLSChartType

Memilih jenis grafik. Diekspor ulang dari lxHandle sehingga kode pengguna tidak perlu mengimpor unit pembangun grafik secara langsung
type
  TXLSChartType = (
    xlsChartTypeColumn,
    xlsChartTypeBar,
    xlsChartTypeLine,
    xlsChartTypePie);

Rekaman TXLSChartSeriesInfo

Membawa deklarasi satu seri untuk overload 6-parameter. Categories dan Values adalah string rentang A1 (misalnya 'Sheet1!$B$2:$B$5')
type
  TXLSChartSeriesInfo = record
    Name        : WideString;
    Categories  : WideString;
    Values      : WideString;
  end;

Sintaks

Lima overload mencakup definisi lembar grafik yang semakin kaya:
// 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;

Keterangan

Substream grafik yang dipancarkan mencakup framing BIFF8 yang dipanggil spec — BOF (dt=$0020), Chart / PlotGrowth / Frame / Series / SheetProperties / AxesUsed / AxisParent (POS + category axis + value axis + PlotArea + Frame + ChartFormat + chart-kind record + ChartFormatLink + Legend), EOF. Round-trip lembar grafik yang ada melalui TXLSCustomChart tidak berubah

Pengikatan nama seri (v2.42.0): setiap Series[i].Name non-kosong ditulis ke dalam substream grafik sebagai label seri literal melalui token PTG tStr pada BRAI nama-seri (id=2). Excel menggunakan label ini dalam legenda dan pemilih seri, sehingga grafik multi-seri menampilkan keterangan yang tepat alih-alih placeholder default "Series1 / Series2"

Pengikatan rentang seri (v2.47.0): mulai di v2.47.0, string rentang A1 Categories dan Values dikompilasi menjadi referensi rentang sel tArea3D nyata di dalam BRAI, melewati compiler formula dan tabel referensi EXTERNSHEET workbook. Sebelum v2.47.0 dua bidang ini diterima di API tetapi dipancarkan sebagai placeholder cce=0, sehingga grafik yang dirender kosong. Pemanggil v2.42.0 yang ada yang meninggalkan Categories / Values kosong tidak terpengaruh

TXLSWorksheet yang dikembalikan muncul dalam koleksi Sheets dan mendapatkan entri boundsheet lembar grafik yang ditulis saat simpan. Metode tingkat sel pada hasil tidak didukung — worksheet host adalah wadah grafik, bukan lembar data

Contoh

Contoh ini membangun workbook dengan lembar data dan grafik kolom yang terikat ke dua kolom lembar data tersebut

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;

Batasan

Detail pemformatan per-jenis grafik (lebar celah, tumpang tindih bilah, ukuran lubang pai, gaya penanda) masih dipancarkan pada default pembangun grafik — belum diekspos di API. Simpan-dan-buka-kembali dengan Excel mempertahankan kehadiran lembar grafik, jenis, judul, judul sumbu, keterangan seri, dan (dari v2.47.0) pengikatan data seri

Lihat juga