เพิ่ม
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
ดูเพิ่มเติม