Програмно додає BIFF8
аркуш діаграми до робочої книги, повертаючи нову вкладку
TXLSWorksheet. Раніше аркуші діаграм можна було зберігати лише непрозоро при циклі завантаження-збереження через
TXLSCustomChart; цей метод записує повний підпотік діаграми безпосередньо в
SaveAs(xlExcel97). Excel відкриває результат як вкладку діаграми вказаного типу. Доступно з v2.41.0 (Дорожня карта №10, Фаза 1); перевантаження з масивом серій додано у v2.42.0
Перелічення TXLSChartType
Вибирає тип діаграми. Реекспортується з lxHandle, щоб код користувача не потребував безпосереднього імпорту модуля побудови діаграм
type
TXLSChartType = (
xlsChartTypeColumn,
xlsChartTypeBar,
xlsChartTypeLine,
xlsChartTypePie);
Запис TXLSChartSeriesInfo
Містить одне оголошення серії для 6-параметричного перевантаження. Categories та Values є рядками діапазонів у форматі A1 (наприклад, 'Sheet1!$B$2:$B$5')
type
TXLSChartSeriesInfo = record
Name : WideString;
Categories : WideString;
Values : WideString;
end;
Синтаксис
П'ять перевантажень охоплюють прогресивно розширені визначення аркушів діаграм:
// 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;
Примітки
Випущений підпотік діаграми охоплює BIFF8 фреймінг, передбачений специфікацією — BOF (dt=$0020), Chart / PlotGrowth / Frame / Series / SheetProperties / AxesUsed / AxisParent (POS + вісь категорій + вісь значень + PlotArea + Frame + ChartFormat + запис типу діаграми + ChartFormatLink + Legend), EOF. Існуючий кругообіг аркушу діаграми через TXLSCustomChart залишається незмінним
Прив'язка імені серії (v2.42.0): кожне непорожнє Series[i].Name записується в підпотік діаграми як буквальна мітка серії через токен PTG tStr на BRAI імені серії (id=2). Excel використовує цю мітку в легенді та селекторі серій, тому на багатосерійних діаграмах відображаються правильні підписи замість типових замінників "Series1 / Series2"
Прив'язка діапазону серії (v2.47.0): починаючи з v2.47.0, рядки діапазонів A1 Categories та Values компілюються в реальні посилання на діапазони комірок tArea3D всередині BRAI, проходячи через компілятор формул та таблицю посилань EXTERNSHEET робочої книги. До v2.47.0 ці два поля приймались на рівні API, але видавались як замінники cce=0, тому відрендерена діаграма була порожньою. Існуючі виклики v2.42.0, що залишали Categories / Values порожніми, не зазнають змін
Повернутий TXLSWorksheet з'являється в колекції Sheets та отримує запис boundsheet аркуша діаграми при збереженні. Методи рівня комірок для результату не підтримуються — хост-аркуш є контейнером діаграми, а не аркушем даних
Приклад
Цей приклад будує робочу книгу з аркушем даних та стовпчастою діаграмою, прив'язаною до двох стовпців цього аркуша даних
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;
Обмеження
Деталі форматування для кожного типу діаграми (ширина проміжку, перекриття стовпців, розмір отвору кругової діаграми, стиль маркера) все ще видаються відповідно до значень за замовчуванням побудовника діаграм — поки не доступні через API. Збереження та повторне відкриття в Excel зберігає присутність аркуша діаграми, тип, заголовок, підписи осей, підписи серій та (з v2.47.0) прив'язку даних серій
Дивіться також