Documentação do HotXLS

Método AddChartSheet

Acrescenta programaticamente uma folha de gráfico BIFF8 ao livro, devolvendo o novo separador TXLSWorksheet. Anteriormente, as folhas de gráfico só podiam ser preservadas de forma opaca num ciclo de leitura-gravação via TXLSCustomChart; este método escreve um subfluxo de gráfico completo directamente em SaveAs(xlExcel97). O Excel abre o resultado como um separador de gráfico do tipo pedido. Disponível desde v2.41.0; a sobrecarga de matriz de séries segue-se em v2.42.0

Enumeração TXLSChartType

Selecciona o tipo de gráfico. Re-exportado de lxHandle para que o código do utilizador não precise de importar a unidade de criação de gráficos directamente
type
  TXLSChartType = (
    xlsChartTypeColumn,
    xlsChartTypeBar,
    xlsChartTypeLine,
    xlsChartTypePie);

Registo TXLSChartSeriesInfo

Contém uma única declaração de série para a sobrecarga de 6 parâmetros. Categories e Values são cadeias de intervalo no estilo A1 (ex.: 'Sheet1!$A$1:$A$5'). Name é um rótulo de série opcional
type
  TXLSChartSeriesInfo = record
    Name        : WideString;
    Categories  : WideString;
    Values      : WideString;
  end;

Sintaxe

Existem cinco sobrecargas que cobrem definições de folhas de gráfico progressivamente mais completas
// 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ções

O subfluxo de gráfico emitido abrange a estrutura BIFF8 exigida pela especificação — BOF (dt=$0020), Chart / PlotGrowth / Frame / Series / SheetProperties e o EOF de fecho

Vinculação do nome da série (v2.42.0): cada Series[i].Name não vazio é escrito no subfluxo do gráfico como um rótulo de série literal

Vinculação do intervalo da série (v2.47.0): a partir de v2.47.0, as cadeias de intervalo A1 de Categories e Values são compiladas em referências de gráfico BIFF8

O TXLSWorksheet devolvido aparece na colecção Sheets e obtém uma entrada de boundsheet de folha de gráfico escrita ao guardar. As propriedades ao nível da célula não estão disponíveis nas folhas de gráfico

Exemplo

Este exemplo cria um livro com uma folha de dados e um gráfico de colunas vinculado a duas colunas dessa folha de dados

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;

Limitações

Os detalhes de formatação por tipo de gráfico (largura do intervalo, sobreposição de barras, tamanho do buraco da pizza, estilo do marcador) são ainda emitidos com as predefinições do criador de gráficos — não são ainda configuráveis através do modelo de objectos

Ver também