תיעוד HotXLS

מתודה AddChartSheet

מוסיפה באופן פרוגרמטי גיליון תרשים BIFF8 לחוברת העבודה, ומחזירה את לשונית TXLSWorksheet החדשה. בעבר, גיליונות תרשים יכלו להישמר רק באופן אטום בסבב טעינה-שמירה דרך TXLSCustomChart; שיטה זו כותבת תת-זרם תרשים שלם ישירות ל-SaveAs(xlExcel97). Excel פותח את התוצאה כלשונית תרשים מהסוג המבוקש. זמין מאז v2.41.0 (Roadmap #10 שלב 1); עומס המערך-של-סדרות מגיע ב-v2.42.0

תחביר

בוחר את סוג התרשים. מיוצא מחדש מ-lxHandle כדי שקוד המשתמש לא יצטרך לייבא את יחידת בונה התרשימים ישירות
type
  TXLSChartType = (
    xlsChartTypeColumn,
    xlsChartTypeBar,
    xlsChartTypeLine,
    xlsChartTypePie);

הערות

נושא הצהרת סדרה בודדת עבור העמסת 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;

Limitations

פרטי עיצוב לפי סוג תרשים (רוחב פער, חפיפת עמודות, גודל חור עוגה, סגנון סמן) עדיין נפלטים בברירות מחדל של בונה התרשימים — טרם חשופים ב-API. שמירה ופתיחה מחדש עם Excel שומרת את נוכחות גיליון התרשים, סוגו, כותרתו, כותרות הצירים, כיתובי הסדרות ו-(מ-v2.47.0) קישור נתוני הסדרות

ראו גם