เอกสาร HotXLS

เมธอด AddChartSheet

เพิ่ม chart sheet BIFF8 ลงใน workbook โดยทางโปรแกรม คืนค่าแท็บ TXLSWorksheet ใหม่ ก่อนหน้านี้ chart sheet สามารถเก็บรักษาได้แบบทึบแสงเท่านั้นในการโหลด-บันทึกผ่าน TXLSCustomChart; เมธอดนี้เขียน chart substream ที่สมบูรณ์โดยตรงลงใน SaveAs(xlExcel97) Excel เปิดผลลัพธ์เป็นแท็บ chart ของชนิดที่ร้องขอ ใช้งานได้ตั้งแต่ v2.41.0 (Roadmap #10 Phase 1); การโอเวอร์โหลดแบบอาร์เรย์ของ series ตามมาใน v2.42.0

การแจงนับ TXLSChartType

เลือกชนิด chart ส่งออกซ้ำจาก lxHandle เพื่อให้โค้ดผู้ใช้ไม่ต้องนำเข้า unit ตัวสร้าง chart โดยตรง
type
  TXLSChartType = (
    xlsChartTypeColumn,
    xlsChartTypeBar,
    xlsChartTypeLine,
    xlsChartTypePie);

ระเบียน TXLSChartSeriesInfo

มีการประกาศ series เดียวสำหรับการโอเวอร์โหลด 6 พารามิเตอร์ Categories และ Values เป็นสตริงช่วง A1 (เช่น 'Sheet1!$B$2:$B$5')
type
  TXLSChartSeriesInfo = record
    Name        : WideString;
    Categories  : WideString;
    Values      : WideString;
  end;

ไวยากรณ์

ห้าการโอเวอร์โหลดครอบคลุมคำจำกัดความ chart-sheet ที่มีความซับซ้อนมากขึ้น:
// 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;

หมายเหตุ

chart substream ที่ส่งออกครอบคลุมกรอบ BIFF8 ที่ spec กำหนด — BOF (dt=$0020), Chart / PlotGrowth / Frame / Series / SheetProperties / AxesUsed / AxisParent (POS + แกนหมวดหมู่ + แกนค่า + PlotArea + Frame + ChartFormat + ระเบียนชนิด chart + ChartFormatLink + Legend), EOF การ round-trip ของ chart-sheet ที่มีอยู่ผ่าน TXLSCustomChart ไม่เปลี่ยนแปลง

การผูก series name (v2.42.0): Series[i].Name ที่ไม่ว่างเปล่าแต่ละรายการจะถูกเขียนลงใน chart substream เป็นป้ายกำกับ series แบบ literal ผ่าน PTG token tStr บน BRAI ชื่อ series (id=2) Excel ใช้ป้ายกำกับนี้ใน legend และตัวเลือก series ดังนั้น chart หลาย series จะแสดงคำบรรยายที่เหมาะสมแทน placeholder เริ่มต้น "Series1 / Series2"

การผูก series range (v2.47.0): ตั้งแต่ v2.47.0 สตริงช่วง A1 ของ Categories และ Values จะถูกคอมไพล์เป็นการอ้างอิงช่วงเซลล์ tArea3D จริงๆ ภายใน BRAI ผ่านคอมไพเลอร์สูตรและตาราง reference EXTERNSHEET ของ workbook ก่อน v2.47.0 สองช่องนี้ได้รับการยอมรับบน API แต่ถูกส่งออกเป็น placeholder cce=0 ดังนั้น chart ที่แสดงจึงว่างเปล่า ผู้เรียก v2.42.0 ที่มีอยู่ซึ่งเว้น Categories / Values ว่างเปล่าจะไม่ได้รับผลกระทบ

TXLSWorksheet ที่คืนมาปรากฏในคอลเลกชัน Sheets และได้รับการเขียน boundsheet entry ของ chart-sheet เมื่อบันทึก เมธอดระดับเซลล์บนผลลัพธ์ไม่รองรับ — worksheet host เป็น container ของ chart ไม่ใช่แผ่นข้อมูล

ตัวอย่าง

ตัวอย่างนี้สร้าง workbook ที่มีแผ่นข้อมูลและ column chart ที่ผูกกับสองคอลัมน์ของแผ่นข้อมูลนั้น

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;

ข้อจำกัด

รายละเอียดการจัดรูปแบบต่อชนิด chart (ความกว้างช่องว่าง การซ้อนทับแท่ง ขนาดรูวงกลม สไตล์เครื่องหมาย) ยังคงถูกส่งออกตามค่าเริ่มต้นของตัวสร้าง chart — ยังไม่เปิดเผยบน API การบันทึก-เปิดซ้ำด้วย Excel จะเก็บรักษาการมีอยู่ของ chart sheet ชนิด ชื่อ ชื่อแกน คำบรรยาย series และ (ตั้งแต่ v2.47.0) การผูกข้อมูล series

ดูเพิ่มเติม