เอกสาร HotXLS

สมาชิก API เพิ่มเติมของไลบรารี

หน้านี้สมบูรณ์ข้อมูลอ้างอิงของชนิดสาธารณะที่สนับสนุน API หลักของสมุดงาน เวิร์กชีต การเรนเดอร์ การนำเข้า การวินิจฉัย และตัวแสดง แต่ไม่จำเป็นต้องมีคู่มือเฉพาะงานแยกต่างหาก

การกรองข้อมูลและการจัดรูปแบบตามเงื่อนไข

TXLSAutofilterAdd, AddAutofilterData, AssignFrom, Clear และ ParseAutofilterData แก้ไขหรือนำเข้าคำนิยามตัวกรอง Defined, FirstRow, FirstCol, LastCol, LastRow และ FieldCount เปิดเผยขอบเขตที่ใช้งานอยู่และจำนวนคอลัมน์ที่กรอง
TXLSAutofilterItemShape เปิดเผยรูปทรงปุ่มตัวกรองที่เกี่ยวข้องกับรายการ และเกณฑ์ตัวกรองที่โหลดไว้เข้าถึงได้ในรูปเรกคอร์ด operand TXLSAutofilterDOPER — DataType เลือกรูปแบบ operand และ grbitSgn ถือบิตเครื่องหมายกับบิตแฟล็ก — สำหรับการตรวจดูหรือแก้ไขแบบ round-trip
TXLSDataBarSpecAxisColor, AxisIsThemeColor, AxisThemeColorId, AxisThemeColorTint และ ClearAxisThemeColor ควบคุมแกน Direction, GradientFill, NegativeBarBorderColorSameAsPositive, NegativeBarColor, NegativeBarColorSameAsPositive และ NegativeBorderColor ควบคุมลักษณะแถบ IsIndexedColor, IndexedColorIndex และ ClearIndexedColor จัดการสีแถบตามดัชนีพาเลต
TXLSIconSetSpecThresholdEqualsInclude เลือกการเปรียบเทียบแบบรวมหรือแบบไม่รวมสำหรับเกณฑ์ไอคอนแต่ละเกณฑ์
TXLSCfValueIsIndexedColor และ IndexedColorIndex รายงานสีเกณฑ์ที่จัดเก็บเป็นดัชนีพาเลตแบบดั้งเดิม ClearIndexedColor ลบรูปแบบนั้นออกอีกครั้ง และสีธีมหรือสีกำหนดตรงยังคงใช้ได้ผ่านตัวเข้าถึงเดิม

TXLSCfValue, TXLSDataBarSpec, TXLSColorScaleSpec, TXLSIconSetSpec และ TXLSDxfStyle รับ AttachWriteGuardOwner โดยเชื่อมออบเจกต์กฎเข้ากับสมุดงานเจ้าของ เพื่อให้การแก้ไขได้รับการพยุงการเขียนโดยอัตโนมัติ เจ้าของต้อง implement TXLSCondFormatWriteGuardOwner ซึ่งมีเมธอด AcquireWriteGuard เมธอดเดียวที่ส่งการพยุงการเขียนของสมุดงานให้กฎ TXLSDxfStyle เพิ่ม FontColorIndex พร้อม FontColorIsIndexed และคู่ FillFgColorIndex / FillFgColorIsIndexed กับ FillBgColorIndex / FillBgColorIsIndexed สำหรับสีกฎตามดัชนีพาเลต บวก override ฟอนต์แบบ differential FontName, FontSize และ FontScheme (สตริงว่าง ขนาดหน่วย point หรือ slot ฟอนต์ของธีมอย่าง major / minor) เพิ่มจากสมาชิก bold, italic, underline และสีที่มีอยู่เดิม โดยการกำหนดค่าแต่ละครั้งจะได้รับการพยุงการเขียน และ mark กฎเป็น dirty เพื่อให้ถูก emit ใหม่

TXLSConnections, TXLSDataTables และ TXLSQueryTables เปิดเผย OnAcquireWriteGuard (ชนิด TXLSConnectionAcquireWriteGuard, TXLSDataTableAcquireWriteGuard และ TXLSQueryTableAcquireWriteGuard) ซึ่งเป็นฮุกที่เส้นทางการแก้ไขของพวกมันใช้ขอรับ IXLSWorkbookWriteGuard ของสมุดงานเจ้าของก่อนการแก้ไข และเพิ่มรุ่นสมุดงานหลังจากนั้น การพยุงจะบันทึก StartGeneration และ Complete ระบุว่าการเขียนเสร็จสิ้น เพื่อให้แคชที่พึ่งพาสร้างใหม่ได้

การเชื่อมต่อข้อมูลที่คงไว้มีคำอธิบายแบบมีชนิดกำกับ: TXLSConnectionKind (xlckUnknown, xlckOdbc, xlckDao, xlckFile, xlckWeb, xlckOleDb, xlckText, xlckAdo) จัดประเภทการเชื่อมต่อ TXLSConnectionCredentials (xlccIntegrated, xlccNone, xlccStored, xlccPrompt) บันทึกโหมดการยืนยันตัวตน และค่าพารามิเตอร์การเชื่อมต่อแต่ละค่าถูกแท็กด้วย TXLSConnectionParameterValueKind (xlcpvNone, xlcpvBoolean, xlcpvDouble, xlcpvInteger, xlcpvString, xlcpvCell) ตาราง What-if รายงานชนิดนิยามที่จัดเก็บไว้ผ่าน TXLSDataTableKind

ตารางข้อมูล What-if และการจัดกลุ่มเชิงหมุน

TXLSDataTableAssign, ContainsCell และ IsRoot คัดลอกและตรวจสอบตาราง Kind, FirstRow, FirstCol, LastCol, LastRow, AlwaysCalculate, ColumnInputCol, ColumnInputRow, ColumnInputDeleted, RowInputCol, RowInputRow และ RowInputDeleted เปิดเผยคำนิยามการคำนวณที่จัดเก็บไว้
TXLSDataTablesAdd, AddExisting, Delete, Clear, Assign, AdjustForShift และ Offset ดูแลคอลเลกชัน FindByCell และ FindRoot ระบุตำแหน่งตารางที่มีเซลล์ที่กำหนดหรือมีรากอยู่ที่เซลล์นั้น Count, Items และ OnChange เปิดเผยสถานะคอลเลกชัน
TXLSPivotCacheFieldGroupBaseField และ GroupParentField เปิดเผยความสัมพันธ์ระหว่างฟิลด์ที่จัดกลุ่มกับฟิลด์ต้นทางหรือฟิลด์แม่ของมัน

เกณฑ์ของชุดไอคอนวาดหรือตรวจสอบผ่านโปรแกรมได้: XLSCfIconSetCount รายงานว่า TXLSIconSetType หนึ่งชุดนิยามไอคอนกี่ตัว และ XLSBuildCfIconGeometry เติม TXLSCfIconGeometry ด้วย primitive (TXLSCfIconPrimitive, ชนิด TXLSCfIconPrimitiveKind: cfipPolygon, cfipEllipse, cfipRect, cfipLine) และจุด (TXLSCfIconPoint) ที่ใช้วาดไอคอนหนึ่งตัว เพื่อให้ตัวเรนเดอร์แบบกำหนดเองได้รูปทรงไอคอนตรงกับของ Excel

การวินิจฉัย การติดตามสูตร และการตรวจสอบความถูกต้อง

TXLSDiagnosticCode, NativeCode, Message, Severity, ExceptionClass, PartName, RecordId, SheetIndex, SheetName และ StreamOffset ระบุการวินิจฉัยหนึ่งรายการของตัวแยกวิเคราะห์ ตัวเขียน หรือแพ็กเกจ
TXLSDiagnosticsAdd เพิ่มรายการวินิจฉัย, Clear ตั้งคอลเลกชันกลับค่าเริ่มต้น และ Count ร่วมกับ Items แจกแจงรายการภายใน
TXLSDiagnosticSeverity และ TXLSDiagnosticOperationTXLSDiagnosticSeverity (xlsDiagnosticInfo, xlsDiagnosticWarning, xlsDiagnosticError, xlsDiagnosticFatal) จัดประเภทการวินิจฉัยหนึ่งรายการ และ TXLSDiagnosticOperation (xlsOperationNone, xlsOperationOpen, xlsOperationSave, xlsOperationCalculate, xlsOperationExport) ระบุเฟสที่ให้กำเนิดมัน ตัวจัดการ OnDiagnostic อ่านทั้งสองค่าจาก TXLSDiagnostic ที่ส่งมาถึง
TXLSFormulaDebugSessionCurrentStep, DependencyCount, NodeCount และ StepCount เปิดเผยสแนปชอตตัวดีบักปัจจุบันและขนาดการติดตามของมัน
TXLSFormulaTracerStepCount รายงานจำนวนขั้นตอนการประเมินที่บันทึกไว้
TXLSImportCheckAddRule, Annotate, KeepOnlyViolations และ Violation กำหนดค่าและรันการตรวจสอบการนำเข้า HeaderRow, FirstRow, LastRow, OnVerifyCell และ ViolationCount เปิดเผยขอบเขต callback และจำนวนผลลัพธ์ กฎเป็นออบเจกต์ TlxImportColumnRule ที่ TlxImportRuleFlags เลือกการตรวจสำหรับคอลัมน์เวิร์กชีตหนึ่งคอลัมน์เริ่มนับจากหนึ่ง และ TlxImportViolation แต่ละตัวรายงานแถว คอลัมน์ ข้อความที่เป็นปัญหา และข้อความ error
TXLSExternalLinkUpdateMode = (xluPromptUser, xluNever, xluAlways);

property IXLSWorkbook.SaveExternalLinkValues: Boolean;
property IXLSWorkbook.UpdateLinks: TXLSExternalLinkUpdateMode;
property TXLSXWorkbook.SaveExternalLinkValues: Boolean;
property TXLSXWorkbook.UpdateLinks: TXLSExternalLinkUpdateMode;
      
ทั้งสองเอนจินค่าเริ่มต้นคือบันทึกค่าที่เก็บในแคชและใช้ xluPromptUser xluNever และ xluAlways เปลี่ยนเพียงความต้องการการอัปเดตที่จัดเก็บไว้ในสมุดงานเท่านั้น และไม่อนุมัติหรือเริ่มการเข้าถึงไฟล์ภายนอกหรือเครือข่ายเด็ดขาด

การตรวจสอบการคำนวณและคำใบ้ของสมุดงาน

function TXLSWorkbook.RecalcAndVerify(MaxIssues: Integer = 10000): TXLSCalculationAuditReport;
function TXLSXWorkbook.RecalcAndVerify(MaxIssues: Integer = 10000): TXLSCalculationAuditReport;
function TXLSWorkbook.RecalcAndVerifyEx(const Options: TXLSRecalcAuditOptions): TXLSCalculationAuditReport;
function TXLSXWorkbook.RecalcAndVerifyEx(const Options: TXLSRecalcAuditOptions): TXLSCalculationAuditReport;
function TXLSWorkbook.RunCalculationAudit(const Options: TXLSRecalcAuditOptions): TXLSCalculationAuditReport;
function TXLSWorkbook.FormulaIsVolatile(Formula: WideString): Boolean;

function TXLSWorkbook.AuditOverlayHash(SheetIndex, Row, Col: Integer): Integer;
function TXLSWorkbook.AuditOverlayRead(SheetIndex, Row, Col: Integer; var Value: Variant): Boolean;
procedure TXLSWorkbook.AuditOverlayWrite(SheetIndex, Row, Col: Integer; const Value: Variant);
procedure TXLSWorkbook.AuditOverlayClear;

TXLSCalculationAuditIssueKind = (xlcaiCacheMismatch, xlcaiParseFailure,
  xlcaiMissingFunction, xlcaiMissingName, xlcaiUnsupportedArguments,
  xlcaiCircularReference, xlcaiExternalReferenceDenied,
  xlcaiExternalReferenceMissing, xlcaiDataTableSkipped, xlcaiCancelled,
  xlcaiInternalFailure);

TXLSCalculationAuditIssue = record
  Kind: TXLSCalculationAuditIssueKind;
  SheetIndex: Integer;
  SheetName: WideString;
  Row: Integer;
  Col: Integer;
  Formula: WideString;
  Symbol: WideString;
  Expected: Variant;
  Actual: Variant;
  ResultCode: Integer;
  Stack: WideString;
  ExternalTarget: WideString;
end;
TXLSCalculationAuditIssues = array of TXLSCalculationAuditIssue;

TXLSRecalcAuditProgress = procedure(ASender: TObject;
  ACurrent, ATotal: Integer; var ACancel: Boolean) of object;

property WorkbookCodeName: WideString;
property CalculationThreadMode: TXLSCalculationThreadMode;
property ForceFullCalculationState: TXLSOptionalBooleanState;
property RefreshAllOnLoadState: TXLSOptionalBooleanState;
      
RecalcAndVerify รวมความล้มเหลวของสัญลักษณ์สูตรและค่าแคชที่ไม่ตรงกันเข้าเป็นหมวดหมู่แบบมีโครงสร้างที่เสถียร พร้อมพิกัดเวิร์กชีต สูตร สัญลักษณ์ ค่าที่คาดหวังกับค่าจริง และการตัดทอนที่มีขอบเขต โดยไม่แตะแคชและ semantics ของสมุดงาน RecalcAndVerifyEx รันการตรวจสอบเชิงลึก: ประเมินทุกสูตรหนึ่งครั้งผ่านกราฟ dependency เข้าสู่ result overlay แบบแยกส่วน เพื่อให้เซลล์ที่พึ่งพาอ่านค่าจาก pass นี้แทนแคชเก่า จัดหมวดหมู่ความล้มเหลวในการประเมิน (argument ที่ไม่รองรับ การอ้างอิงวงวน external reference ที่ถูกปฏิเสธหรือหายไป ตารางข้อมูลที่ถูกข้าม การยกเลิก ความล้มเหลวภายใน) พร้อม result code บันทึก call stack แบบมีขอบเขตต่อความล้มเหลวหนึ่งรายการ เคารพงบจำนวน issue และ sink สำหรับความคืบหน้า/การยกเลิก และเป็นแบบอ่านอย่างเดียวจนกว่า ApplyResults จะ commit ค่าที่คำนวณใหม่แบบ atomic หลัง pass สำเร็จเต็มรูปแบบบนโครงสร้างสมุดงานที่ไม่เปลี่ยนแปลง
แต่ละสมาชิกของ TXLSCalculationAuditReport.Issues เป็น TXLSCalculationAuditIssue Kind เลือกหนึ่งในหมวดหมู่ xlcai* Expected / Actual ถือค่าที่นำมาเทียบสำหรับกรณีแคชไม่ตรงกัน Stack เป็นสาย call ของการประเมินแบบมีขอบเขตที่แสดงเป็น Sheet!A1 > Sheet!B2 (เฟรมนอกสุดมาก่อน) และ ExternalTarget อธิบายสมุดงานภายนอกสำหรับ issue ที่เป็น external reference TXLSRecalcAuditOptions.OnProgress เป็น sink แบบ TXLSRecalcAuditProgress ที่รับความคืบหน้าของโหนด ACurrent / ATotal และตั้ง ACancel เพื่อหยุดการตรวจสอบที่ขอบเขตโหนดถัดไปพร้อม issue xlcaiCancelled เพียงรายการเดียว
RunCalculationAudit เป็นจุดเข้าระดับเอนจินที่ wrapper การตรวจสอบระดับสมุดงานมา delegate ต่อ และรับเรกคอร์ด options ชุดเดียวกัน FormulaIsVolatile รายงานว่าสูตรจะบังคับให้คำนวณใหม่ทุก pass หรือไม่ (การเรียกอย่าง NOW, RAND, TODAY, OFFSET, INDIRECT หรือการอ้างอิงที่ resolve ไม่ได้)
audit overlay เป็นเลเยอร์ what-if วางทับบนแคชเซลล์ AuditOverlayWrite เก็บค่าแทนที่ของเซลล์หนึ่งเซลล์ (ดัชนีชีตเริ่มที่หนึ่ง แถวและคอลัมน์เริ่มที่ศูนย์ตามธรรมเนียมของตัวคำนวณ) AuditOverlayRead และ AuditOverlayHash ใช้สอบถาม และ AuditOverlayClear ล้างเลเยอร์ ค่าที่ซ้อนทับจะถูกคืนจาก getter ค่าเซลล์ปกติ การคำนวณใหม่และการตรวจสอบเชิงลึกจึงมองเห็นค่าเหล่านั้นโดยไม่แก้เซลล์ของเวิร์กชีต การล้าง overlay จะคืนค่าที่จัดเก็บไว้เดิม
คุณสมบัติคำใบ้ของสมุดงานคงสถานะหายไป false, true, disabled, automatic และ manual ไว้ในรูปแบบต้นทางที่รองรับ และไม่เริ่มงานคำนวณ รีเฟรช ระบบไฟล์ เครือข่าย หรือฐานข้อมูลตอนเปิดเด็ดขาด

สูตรตารางและสถานะ IME

property TXLSXTable.ColumnCalculatedFormulaArrayStates[Index: Integer]: TXLSTableFormulaArrayState;
property TXLSXTable.ColumnTotalsFormulaArrayStates[Index: Integer]: TXLSTableFormulaArrayState;
property TDataValidation.ImeMode: TXLSDataValidationImeMode;
property TXLSXDataValidation.ImeModeKind: TXLSDataValidationImeMode;
      
สูตร calculated column และแถว totals คงสถานะ array แบบ absent, false, true หรือ unknown อย่างเป็นอิสระจากกัน รวมถึงค่าเชิง lexical ของต้นทางที่ไม่ถูกแตะและการแก้โครงสร้างคอลัมน์ สูตร array จะถูกปฏิเสธโดยการขยายแถวแบบสเกลาร์ ไม่ถูกเปลี่ยนเงียบ ๆ
โหมด IME ใช้การแมป BIFF กับ OOXML ที่ระบุชัดเจน คงค่าต้นทางที่ไม่รู้จักไว้ และปฏิเสธค่า disabled ที่มีเฉพาะใน OOXML เมื่อถูกเขียนสำหรับ Classic XLS
การตั้ง SaveExternalLinkValues เป็น False จะละทิ้งระเบียน XCT และ CRN แบบคลาสสิก หรือทรีย่อย sheetDataSet ของสมุดภายนอกใน XLSX โดยคงเป้าหมายลิงก์ ชื่อเวิร์กชีต ชื่อที่กำหนดภายนอก ความสัมพันธ์ การอ้างอิงสูตร XML ที่ไม่รู้จัก และแคชในหน่วยความจำไว้ การคืนค่าคุณสมบัติเป็น True บนสมุดงานเดิมสามารถซีเรียลไลซ์แคชที่คงไว้นั้นอีกครั้งได้
โทเคนต้นทางที่ไม่รองรับซึ่งไม่ถูกแตะต้องจะถูกคงไว้แบบไบต์ต่อไบต์หรือตามรูปแบบคำ การกำหนดค่าอย่างชัดเจนจะส่งออกเฉพาะค่าที่ถูกต้องตามกฎ ส่วน XLSX ที่ไม่เปลี่ยนแปลงจะคงเส้นทางการคัดลอกแบบบีบอัดไว้ และการแปลง XLS/XLSX จะส่งต่อนโยบายทั้งสอง สมุดงาน ODS และข้อความไม่มีการประกาศเทียบเท่าจึงเปิดด้วยค่าเริ่มต้น ขณะที่ส่วนลิงก์ DDE และ OLE ที่คงไว้จะไม่ถูกถือเป็นแคชเซลล์สมุดงานภายนอก

การตรวจสอบและการลบบานหน้าต่างงานของส่วนเสริมเว็บ

function IXLSWorkbook.HasWebAddinTaskPanes: Boolean;
function IXLSWorkbook.WebAddinTaskPaneCount: Integer;
function IXLSWorkbook.RemoveWebAddinTaskPanes: Integer;
function TXLSXWorkbook.HasWebAddinTaskPanes: Boolean;
function TXLSXWorkbook.WebAddinTaskPaneCount: Integer;
function TXLSXWorkbook.RemoveWebAddinTaskPanes: Integer;
      
เมธอดการตรวจสองจะจดจำเฉพาะความสัมพันธ์ภายในที่รากอยู่ที่รากแพ็กเกจซึ่งชนิดตรงกับชนิดความสัมพันธ์ของบานหน้าต่างงานส่วนเสริมเว็บทุกประการ ความสัมพันธ์ภายนอก ชนิดที่ใช้อักษรต่างกัน ความสัมพันธ์ของเวิร์กชีต และส่วนที่ชื่อคล้ายกันจะถูกละเว้น
การลบจะตรวจสอบกราฟความสัมพันธ์ทั้งหมดก่อน รวมถึงเป้าหมายที่ปรับมาตรฐาน การจำกัดไว้ที่รากแพ็กเกจ วงวน ส่วนที่หายไป และขีดจำกัดทรัพยากร จากนั้นจึงลบความสัมพันธ์รากที่ตรงกันทั้งหมดและเฉพาะส่วนที่ไปถึงได้ซึ่งไม่ถูกใช้ร่วมกับความสัมพันธ์ที่คงไว้อื่น พร้อมส่วนความสัมพันธ์ที่เป็นของแหล่งที่ถูกลบ
การดำเนินการนี้เป็นแบบอะตอมมิกและทำซ้ำได้ผลเดิม ส่วนแหล่งที่ถูกลบจะไม่ปรากฏกลับมาผ่านการบันทึกแบบคัดลอกบีบอัด และชนิดเนื้อหาถูกสร้างใหม่จากแพ็กเกจที่เหลือ กราฟที่ผิดรูปจะเพิ่มรหัสวินิจฉัย 1303 และทำให้เกิดข้อยกเว้นก่อนการแก้ไข ขณะที่ Classic XLS และ ODS ส่งกลับ False, 0 และ -1 โดยไม่สแกนแพ็กเกจ

นโยบายการแสดงออบเจกต์ของสมุดงาน

TXLSObjectDisplayMode = (xlsodmShowAll, xlsodmShowPlaceholders,
  xlsodmHideAll);

property IXLSWorkbook.ObjectDisplayMode: TXLSObjectDisplayMode;
property TXLSWorkbook.ObjectDisplayMode: TXLSObjectDisplayMode;
property TXLSXWorkbook.ObjectDisplayMode: TXLSObjectDisplayMode;
property TXLSPaginationModel.ExportObjectPlaceholders: Boolean;
property TXLSPDFExport.ExportObjectPlaceholders: Boolean;
property TXLSSvgExport.ExportObjectPlaceholders: Boolean;
property TXLSPageImageExporter.ExportObjectPlaceholders: Boolean;
property TXLSPrintDocument.ExportObjectPlaceholders: Boolean;
property TXLSXHtmlExportOptions.ExportObjectPlaceholders: Boolean;
      
Classic XLS แมปสามสถานะไปยังเรกคอร์ด object-display ของสมุดงาน และ XLSX แมปไปยัง workbookPr.showObjects ค่าที่หายไปใช้ค่าเริ่มต้น xlsodmShowAll payload Classic ที่สงวนไว้ซึ่งไม่ถูกแตะและโทเคน XLSX ที่ไม่รองรับยังคงอยู่ครบถ้วนแบบ lossless และการกำหนดค่าอย่างชัดเจนจะเขียนเฉพาะค่า canonical
ตัวแสดงวาดโหมด placeholder เป็นกล่องเบา ๆ ที่แสดงชนิดออบเจกต์ ชื่อ ข้อความ และข้อความทางเลือกที่มีได้ ตัวส่งออกคงออบเจกต์เต็มไว้เป็นค่าเริ่มต้น ขณะที่การตั้ง ExportObjectPlaceholders จะขอนโยบายต้นทุนต่ำแบบเดียวกันโดยไม่ถอดรหัส payload รูปภาพหรือสร้าง scene ของแผนภูมิ
xlsodmHideAll ป้องกันไม่ให้คอลเลกชันการวาดและการขยายช่วงที่ขับเคลื่อนด้วยออบเจกต์ทำงานก่อนการเรนเดอร์จะเริ่ม การแปลงสมุดงานถือทั้งสามสถานะไปด้วย ODS เขียน drawing แบบสมบูรณ์สำหรับโหมด placeholder และละเอาต์พุต drawing กับ media ทิ้งสำหรับโหมด hide-all ส่วนพื้นหลังเวิร์กชีตยังเป็นอิสระจากกัน

ค่าการปรับเทียบการเรนเดอร์และสแนปชอต

TXLSRenderCalibration = record
  WidthCorrection: Double;
  HeightCorrection: Double;
  LineSpacing: Double;
  CellMarginFactor: Double;
  ScreenScaling: Integer;
  MeasurementDpi: Integer;
end;

function XLSDefaultRenderCalibration: TXLSRenderCalibration;
function XLSValidateRenderCalibration(const AValue: TXLSRenderCalibration;
  out AInvalidField: TXLSRenderCalibrationField): Boolean;
      
ค่าเริ่มต้นคือ 1, 1, 1, 1, 100 และ 96 การแก้ความกว้างและความสูงต้องมากกว่าศูนย์และน้อยกว่าสอง ระยะห่างบรรทัดถูกจำกัดไว้ที่ (0, 4], ระยะขอบเซลล์ที่ [0, 4], การปรับสเกลหน้าจอที่ [100, 500] เปอร์เซ็นต์ และ DPI การวัดที่ [36, 2400]
สมุดงาน Classic XLS และ XLSX เปิดเผยสมาชิก RenderCalibration, CaptureRenderCalibration และ ResetRenderCalibration ชุดเดียวกัน การกำหนดทั้งระเบียนจะตรวจสอบก่อนแก้ไข และการจับภาพแต่ละครั้งส่งกลับสแนปชอตค่าที่เป็นอิสระและเปลี่ยนแปลงไม่ได้ตามธรรมเนียม สำหรับการเรนเดอร์หนึ่งครั้ง

เรขาคณิตการเรนเดอร์และการวัดฟอนต์

TXLSRenderGeometryBackend = (xlsrgbAutoFit, xlsrgbPagination, xlsrgbPdf,
  xlsrgbSvg, xlsrgbBitmap, xlsrgbPrintPreview, xlsrgbViewer, xlsrgbHtml);

TXLSRenderFont = record
  Name: WideString;
  Size: Double;
  Styles: TXLSRenderFontStyles;
  Charset: Byte;
end;

function CreateXLSRenderGeometry(
  const ACalibration: TXLSRenderCalibration;
  AWorkbookGeneration: UInt64;
  ABackend: TXLSRenderGeometryBackend;
  ACacheCapacity: Integer = 4096): IXLSRenderGeometry;

property TXLSHTMLExport.RenderGeometry: IXLSRenderGeometry;
property TXLSXHtmlExportSession.RenderGeometry: IXLSRenderGeometry;
      
IXLSRenderGeometry เป็นเจ้าของการปรับเทียบหนึ่งชุดที่เปลี่ยนแปลงไม่ได้ รุ่นสมุดงาน เอกลักษณ์แบ็กเอนด์ พื้นผิววัด GDI และแคชเมตริกจำกัดขอบเขตเฉพาะการดำเนินการ MeasureText ส่งกลับความกว้างและความสูงเป็นพิกเซล ความสูงบรรทัด ระยะขึ้น ระยะลง และจำนวนบรรทัด ขณะที่ MaximumDigitWidthPixels, ColumnWidthToPixels, PixelsToColumnWidth, PointsToPixels, PixelsToPoints และ UsableCellWidthPixels ให้การแปลงเรขาคณิตที่ใช้ร่วมกัน
เอกลักษณ์แคชรวมแบ็กเอนด์ รุ่นสมุดงาน ค่าการปรับเทียบทั้งหมด ชื่อฟอนต์ ขนาดที่แน่นอน สไตล์ ชุดอักขระ ความกว้างการตัดคำ และข้อความ การแก้ความกว้างและความสูงถูกใช้หนึ่งครั้งระหว่างการวัดข้อความ ระยะห่างบรรทัดมีผลเฉพาะความสูงหลายบรรทัด การแก้ระยะขอบเซลล์มีผลเฉพาะความกว้างข้อความที่ใช้ได้ และการปรับสเกลหน้าจอมีผลเฉพาะการเลียนแบบความกว้างตัวเลขสูงสุดสำหรับความกว้างคอลัมน์โดยปริยาย
AutoFit ของ Classic XLS และ XLSX จับบริการหนึ่งชุดต่อการดำเนินการสาธารณะหนึ่งอย่าง รวมถึงการวัดช่วงที่ผสานและการวัด MarkSheet แบบสองเฟส ขณะที่ TXLSPaginationModel.Build จับบริการหนึ่งชุดสำหรับ RenderBackend ที่เลือก จุดเข้าใช้งาน PDF, SVG, บิตแมป, ตัวอย่างก่อนพิมพ์, ตัวแสดงสมุดงาน และ HTML เลือกแบ็กเอนด์ของตนก่อนส่งออก การเปลี่ยนการปรับเทียบสมุดงานไม่สามารถแก้สแนปชอตที่มีอยู่ได้ และเอาต์พุตไม่เขียนมิติของเวิร์กชีต
การเรียก HTML โดยตรงสำหรับสมุดงาน เวิร์กชีต และช่วง จะจับบริการ xlsrgbHtml ชุดใหม่ ขณะที่เซสชัน TXLSXHtmlExportSession แบบเพิ่มหน่วยจะจับหนึ่งครั้งใน BeginExport และใช้สแนปชอตนั้นซ้ำกับทุกเวิร์กชีต ทั้งสองตัวส่งออกเปิดเผยบริการที่คงไว้ผ่าน RenderGeometry เพื่อการวินิจฉัยการปรับเทียบและแคช
คุณสมบัติแบบอ่านอย่างเดียวของ IXLSRenderGeometry ได้แก่ WorkbookGeneration, CacheCapacity และ CacheEntryCount รายงานรุ่นที่ผูกไว้และความเต็มของแคชเพื่อการวินิจฉัย และ ImplicitWidthMaximumDigitWidthPixels ส่งกลับผลการวัดความกว้างตัวเลขที่อยู่เบื้องหลังการเลียนแบบความกว้างคอลัมน์โดยปริยาย
MeasureText เติมเรกคอร์ด TXLSRenderTextMetrics (ความกว้าง ความสูง ความสูงบรรทัด ระยะขึ้น ระยะลง และจำนวนบรรทัด เป็นพิกเซล) จาก TXLSRenderFont ที่สมาชิก Styles เป็นเซตของแฟล็ก TXLSRenderFontStyle (bold, italic, underline, strikethrough)

การนำเข้า การสร้างโค้ด การเปรียบเทียบ และการตรวจตรา

TXLSHTMLImportโอเวอร์โหลด LoadFromHTML นำเข้าเนื้อหาตาราง HTML จากสตรีมหรือไฟล์เข้าสู่เวิร์กชีต พร้อมพิกัดเริ่มต้น การเลือกตาราง และตัวคั่นทศนิยมแบบเลือกได้
TXLSCodeGenLanguage (ชนิด TlxCodeGenLanguage: lcgDelphi หรือ lcgCppBuilder) เลือกภาษาต้นฉบับของคำสั่งที่สร้างขึ้น GenerateToList เขียนโค้ดสมุดงานที่สร้างขึ้นลงรายการสตริง และ TlxCodeGenOptions ขยายเอาต์พุตด้วยการผสานเซลล์ ความกว้างคอลัมน์ หรือ number format (cgoMerges, cgoColumnWidths, cgoNumberFormats ส่วนชีตและเซลล์ถูกส่งออกเสมอ)
TXLSXWorkbookCompareLeftName และ RightName ติดป้ายอินพุต Compare ทำการเปรียบเทียบ และ Diff เปิดเผยรายการ TlxCompareDiff ที่ได้ จัดหมวดหมู่ด้วย TlxCompareKind
TXLSFileMonitorIntervalMs เลือกรอบการสำรวจและ SynchronizeEvent เลือกการส่ง callback แบบซิงโครไนซ์ ตัวจัดการ OnFileChanged สั่งปิดการทำงานหรือทำลาย monitor ได้ หรือเปลี่ยน FileName เพื่อเริ่มเฝ้าดูไฟล์อื่น
TXLSCSVLoader และ TXLSCSVSaverloader แยกวิเคราะห์ข้อความคั่นตัวคั่นเข้าสู่กริดของ Variant ในหน่วยความจำ — ParseFile และ ParseStream เติมกริด CellValue, RowCount และ ColCount อ่านคืน — พร้อมตรวจจับตัวคั่น (ValueSeparator) และ encoding (TXLSCsvEncoding: system ANSI, UTF-16, UTF-8) อัตโนมัติ และการเลื่อนชนิดข้อมูลแบบเลือกได้ผ่าน DetectTypes กับรายการ ColumnTypes รายคอลัมน์ (TXLSCsvColumnType: auto, text, number, date, boolean, skip) SkipRows, AutoTrim, LocaleTolerantNumbers และ FieldWidths ช่วยปรับการจัดการ fixed-width และ locale TXLSCSVSaver.SaveAs เขียนกริดกลับพร้อม quoting ตาม RFC 4180 และ QuoteAllStrings บังคับ quote ทุกข้อความ TXLSTSVSaver สืบทอดจาก saver เพื่อเอาต์พุตคั่นแท็บ

ตัวช่วยแพ็กเกจและการจัดเก็บแบบไบนารี

TXLSXOpaquePackageLoadWorkbookXmlMetadata จับสถานะ XML ระดับสมุดงาน MarkAllPartsClean ตั้งแฟล็กความไม่สดใหม่กลับค่าเริ่มต้น และ WorkbookExtLstXml ร่วมกับ WorkbookRootAttributesXml เปิดเผยส่วน XML ของสมุดงานที่คงไว้ IsDiscardedPart รายงานว่าชื่อส่วนถูกลบโดยการดำเนินการทิ้ง เช่น การล้างส่วนเสริมเว็บ หรือไม่
TXLSFileStorageLoad, LoadFolder, Write และ WriteFolder ถ่ายโอนเนื้อหาไฟล์แบบประกอบ Child และ Count แจกแจงรายการลูก แต่ละรายการเป็น TXLSFileItem — โหนด storage ที่มีชื่อ ซึ่งคลาสย่อย TXLSFileStream ถือไบต์ที่จัดเก็บเป็น TXLSBlob พร้อม DataSize รายงานความยาว payload
TXLSBlobAdd ต่อท้ายบล็อบอีกชุดหนึ่ง ขณะที่ AddByte, AddWord, AddLong, AddDouble, AddString และ AddWideString ต่อท้ายค่าแบบมีชนิด CopyData, CopyMem, FillByte, Write, Clear, Reset และ Dump จัดการเนื้อหา Buff และ DataLength เปิดเผยพื้นที่จัดเก็บ
TXLSBlobListAppend, AppendList, CopyData และ Write รวมหรือส่งออกรายการ Entries และ TotalSize เปิดเผยสถานะรายการ
TXLSWideStringBuilderAddString ต่อท้ายข้อความและ Length รายงานจำนวนอักขระที่สะสมไว้

ส่วนเพิ่มเติมของการวาดรูปและตัวแสดงสมุดงาน

TXLSFillFormatPictureFill กำหนดการเติมรูปทรงที่อิงภาพ ขณะที่ FillType เลือกชนิดการเติม (สีทึบ การไล่ระดับสี รูปภาพ หรือลวดลายที่กำหนดไว้ล่วงหน้า) ที่ตัวเขียนจะส่งออก
TXLSShapesAddScrollBar และ AddSpinner สร้างตัวควบคุมฟอร์ม — ออบเจกต์ TXLSScrollBar และ TXLSSpinner ที่ได้กลับมาเปิดเผยเรขาคณิตของตัวควบคุมและเซลล์ที่เชื่อมกัน โดย spinner เพิ่มขีดจำกัดขั้น Min, Max และ Inc — ขณะที่ RegisterScrollBar และ RegisterSpinner ลงทะเบียนตัวควบคุมที่โหลดจากสมุดงาน
TXLSWorkbookViewerCanUndo และ CanRedo รายงานความพร้อมใช้ของประวัติการแก้ไข ขณะที่ ReferencePickMode เปิดใช้การเลือกการอ้างอิงเซลล์หรือช่วงแบบโต้ตอบ

การแบ่งหน้า เอาต์พุตภาพ และการพิมพ์

TXLSGraphicsBackendDrawTiledImage วาดพื้นหลังชีตซ้ำ ๆ คลุมพื้นที่หน้าที่ถูก clip
TXLSPaginationModelCompactRangeMode, IncludeDrawings, IncludeGridlines, IncludeCellBorders และ PaintPageBackground ควบคุมเนื้อหาหน้า RenderDPI, RenderColorMode และ RenderSession เปิดเผยความละเอียดเอาต์พุต การจัดการสี และ render session ที่กำลังทำงาน
TXLSCellImageExporterMeasure คำนวณขนาดเป็นพิกเซลสำหรับช่วงแบบ classic หรือ XLSX ImageFormat, JpegQuality, MaxPixels, MaxBytes, IncludeObjects, IncludeGridlines, IncludeCellBorders, BackgroundColor, TransparentBackground, BeforePaint, AfterPaint และ PaginationModel กำหนดค่าและสังเกตการเรนเดอร์
TXLSPageImageExporterBeforePaint, AfterPaint, MaxPixels, MaxBytes, BackgroundColor และ TransparentBackground ใช้ paint hook และขีดจำกัดความปลอดภัยของเอาต์พุตชุดเดียวกันกับการส่งออกภาพแบบแบ่งหน้า
TXLSPrintDocumentPrintWorksheet, PrintWorkbook และ PrintAllVisibleSheets ส่งเนื้อหาแบบ classic หรือ XLSX เข้าเครื่องพิมพ์ VCL FirstPage, PrintRangeOnly, Collate, Copies, OnBeforeNewPage และ OnAfterGeneratePage ควบคุมงานพิมพ์

โมเดลแผนภูมิแบบคลาสสิกและออบเจกต์แผนภูมิของเวิร์กชีต

TXLSChartSeriesAddTrendline และ AddErrorBars สร้างคำอธิบายประกอบของชุดข้อมูลแบบมีชนิด ขณะที่ TrendlineCount และ ErrorBarCount รายงานขนาดของคอลเลกชัน
TXLSChartAxisHasAxcExtFlag ทดสอบแฟล็ก AXCEXT ดิบหนึ่งตัวโดยผู้เรียกไม่ต้องถอด bit mask เอง
TXLSChartModelAxisGroupCount รายงานจำนวนกลุ่มแกนหลักและแกนรองที่ถอดรหัสจากแผนภูมิ
TXLSCustomChartAddAreaData ต่อท้ายรายการ area ที่สร้างไว้แล้วเพื่อผูกสูตรใหม่ตอนบันทึก และ ApplyDateAxisModel ใช้โมเดลแกนวันที่แบบมีชนิดกับเรกคอร์ดแผนภูมิดิบ
TXLSWorksheetAddChartObject ยึดกรอบแผนภูมิลงบนเวิร์กชีตและต่อเข้ากับตัวสร้างแผนภูมิที่ใช้ร่วมกัน
TXLSXChartLayoutResolverTryResolve resolve สี่เหลี่ยม layout หนึ่งชิ้นพร้อมตรวจความถูกต้องของขนาดได้เมื่อต้องการ และ ResolveChart คำนวณสี่เหลี่ยมของแผนภูมิ ชื่อเรื่อง คำอธิบายแผนภูมิ พื้นที่พล็อต และแกน

โมเดลการถอดรหัสแผนภูมิแบบมีชนิด

สถานะแผนภูมิที่ถอดรหัสแล้วถูกเปิดเผยเป็นเรกคอร์ดและ enum ธรรมดา โค้ดที่ตรวจดูจึงไม่ต้องเดินไล่เรกคอร์ด BIFF ดิบเอง: TXLSChartInfo ถือสรุปแผนภูมิที่ถอดรหัสพร้อม TXLSChartTypeFamily (cfBar, cfLine, cfPie, cfArea, cfScatter, cfRadar, cfDoughnut, cfSurface, cfBubble) แต่ละชุดข้อมูลรายงาน TXLSChartSeriesType และ TXLSChart3DState กับ TXLSChart3DInfo อธิบายมุมมองสามมิติ TXLSChartAxisType (catCategory, catValue, catSeries, catDate) และ TXLSChartLegendPosition จัดประเภทแกนกับคำอธิบายแผนภูมิ ส่วนโมเดลแกนวันที่ใช้ TXLSChartDateUnit (xcduDays, xcduMonths, xcduYears) และ TXLSChartDateValues TXLSCustomChart เปิดเผยโมเดลที่ถอดรหัสผ่าน TXLSChartInfo คำอธิบายประกอบ trendline และ error bar เป็นออบเจกต์แบบมีชนิด (TXLSChartTrendline, TXLSChartErrorBars) ที่ไปถึงได้จากชุดข้อมูลแต่ละชุด

เรกคอร์ดการสร้างแผนภูมิ

การสร้าง chart sheet และการสร้างผ่าน builder ยอมรับเรกคอร์ดธรรมดาแทนกราฟออบเจกต์: TXLSChartTrendlineInfo, TXLSChartErrorBarsInfo, TXLSChartDataLabelsInfo และ TXLSChartSeriesStyleInfo เติมรายการชุดข้อมูลที่ส่งให้ TXLSWorksheets.AddChartSheet และตัวสร้างแผนภูมิที่ใช้ร่วมกัน ส่วน TXLSPivotChartInfo อธิบายการจัดกรอบ pivot chart ที่ใช้เมื่อแผนภูมิถูกผูกกับตาราง pivot

ไฟล์แนบ PDF ลายเซ็น และการส่งออก HTML

IXLSPDFAttachmentSourceWriteTo สตรีมไบต์ไฟล์แนบเข้าการส่งออก PDF โดยตัวส่งออกไม่ต้องเป็นเจ้าของข้อมูลต้นทางเอง
TXLSPDFExportAttachmentDuplicatePolicy เลือกการจัดการชื่อซ้ำ AttachmentSpoolThreshold ควบคุมการ spool ไฟล์แนบ และ DocumentLanguage เขียน metadata ภาษาของเอกสาร
TXLSPDFSignatureTextAlign, TextSize, TextColor, TextBold และ TextItalic กำหนดรูปลักษณ์ลายเซ็นที่มองเห็นได้
TXLSHTMLExportViewMode (ชนิด TXLSHtmlViewMode: มุมมองปัจจุบันหรือตาราง spreadsheet เต็ม) เลือกรูปแบบการนำเสนอ HTML ขณะที่ HotTrackTargets (เซตของ TXLSHtmlHotTrackTarget) และ HotTrackColor กำหนดการไฮไลต์เซลล์และออบเจกต์แบบโต้ตอบ
TXLSXHtmlExportOptionsViewMode, HotTrackTargets และ HotTrackColor ให้ตัวควบคุมเทียบเท่าสำหรับการส่งออก HTML ของ XLSX

การตรวจสอบการคำนวณและตัวควบคุมสมุดงาน

TXLSCalculationAuditReportTruncated รายงานการตัดทอนตามขีดจำกัด issue StackTruncated รายงานการตัดทอนเฟรมของ call stack และ Issues เข้าถึง issue การคำนวณที่บันทึกไว้
TXLSUserFunctionRegistryGeneration เปลี่ยนทุกครั้งที่ชุด user function ที่ลงทะเบียนไว้เปลี่ยน ทำให้ binding สูตรที่แคชไว้ถูก invalidate ได้
EXLSReportRecoverableDataCategory ระบุหมวดของข้อมูลรายงานที่กู้คืนได้ซึ่งแสดงต่อผู้เรียก
IXLSWorkBookManualCalculationThreadCount จำกัดจำนวน worker ที่การคำนวณแบบ manual ใช้
TXLSXDataValidationHasUnknownImeMode รายงานค่าโหมด IME ที่ HotXLS คงไว้แต่ไม่รู้จัก
TXLSXTableColumnCalculatedFormulaArrayRaw และ ColumnTotalsFormulaArrayRaw เปิดเผยข้อความ array formula ต้นฉบับของคอลัมน์ตาราง

ความเข้ากันได้ของ framing PivotCache แบบเดิม

TXLSPivotCacheRawBucketIndex ระบุตำแหน่ง substream ต้นทาง RawFramingIsLegacy ระบุ framing แบบเดิมของ HotXLS RawModelIsComplete รายงานว่าโมเดลแบบมีชนิดครอบคลุมทุกเรกคอร์ดหรือไม่ และ CanUpgradeFraming รายงานว่าการเขียนใหม่แบบมีชนิดที่ต้อง opt-in ปลอดภัยหรือไม่
TXLSPivotCacheStreamId เปิดเผยเอกลักษณ์สตรีมแคชแบบคลาสสิก SourceDataType เปิดเผยชนิด source data แบบคลาสสิก และ RawHasStorageStream รายงานว่าแคชที่โหลดมาเคยมาจากสตรีม storage PivotCache แยกต่างหากหรือไม่
TXLSWorkbookUpgradeLegacyPivotCacheFraming เลือกเขียนใหม่เฉพาะ framing แคชแบบเดิมของ HotXLS ที่โมเดลแบบมีชนิดสมบูรณ์ การ replay แคชดิบธรรมดายังเป็นค่าเริ่มต้น

StreamId ถูกเขียนเป็นเรกคอร์ด SXStreamID ([MS-XLS] §2.4.303) และซ้ำอีกครั้งเป็นฟิลด์ idstm ในหัวเรกคอร์ด SXDB ซึ่งต้องมีค่าเท่ากัน SourceDataType ถูกเขียนเป็นเรกคอร์ด SXVS ([MS-XLS] §2.4.317: $0001 เวิร์กชีต, $0002 external, $0004 consolidation, $0010 scenario) และซ้ำเป็นฟิลด์ vsType ในหัวเรกคอร์ด SXDB ซึ่งต้องเท่ากันเช่นกัน แคชที่สร้างจากช่วงเวิร์กชีตจะเริ่มที่ชนิดเวิร์กชีต ขณะที่แคชที่อ่านกลับจากไฟล์คงค่าที่ substream ของมันถือไว้ ตัวเขียน BIFF จึงไม่มีวันทิ้งฟิลด์ SXDB ที่อ้างถึงเรกคอร์ดที่ตัวเองไม่ได้เขียน RawHasStorageStream ระบุแคชที่โหลดจากสตรีม storage ของตัวเองซึ่งตัวอธิบายระดับสมุดงานมาอยู่ก่อนเรกคอร์ดแคช

การทำงานร่วมกับคลิปบอร์ดและตัวเลือกการวาง

TXLSPasteOption = (xlpoValuesOnly, xlpoInsertRows, xlpoInsertCols);
TXLSPasteOptions = set of TXLSPasteOption;

function XLSGetClipboardText: WideString;
function XLSSetClipboardText(const Text: WideString): Boolean;
function XLSSetClipboardTextAndHtml(const Text: WideString;
  const Html: AnsiString): Boolean;
function XLSBuildHtmlClipboard(const Html: AnsiString): AnsiString;
function XLSEncodeClipboardField(const Text: WideString): WideString;
function XLSClipboardHasText: Boolean;
function XLSParseClipboardGrid(const ClipboardText: WideString;
  Loader: TXLSCSVLoader): Boolean;
function XLSClipboardHasXmlSpreadsheet: Boolean;
function XLSGetClipboardXmlSpreadsheet: WideString;
function XLSClipboardHasBiff8: Boolean;
      
ตัวเลือกการวางถูกใช้ร่วมกันโดย overload PasteFromClipboard ของทั้งสอง facade: xlpoValuesOnly เก็บค่าแคชของเซลล์สูตรไว้และข้ามรูปแบบกับการผสาน ขณะที่ xlpoInsertRows และ xlpoInsertCols เลื่อนเนื้อหาเดิมออกก่อนบล็อกข้อมูลจะลงตำแหน่ง
ตัวช่วยเหล่านี้หุ้มคลิปบอร์ดของ Windows ไว้เพื่อ interop กับ spreadsheet: ตัวช่วยข้อความใช้ CF_UNICODETEXT (fallback ไป CF_TEXT ผ่าน ANSI code page ปัจจุบัน) XLSSetClipboardTextAndHtml เขียนข้อความกับ payload HTML Format ที่มีสไตล์ในหนึ่งธุรกรรม XLSBuildHtmlClipboard คำนวณ byte offset ของ CF_HTML สำหรับเอกสารหรือ fragment และ XLSEncodeClipboardField quote ฟิลด์คั่นแท็บหนึ่งฟิลด์ XLSParseClipboardGrid แยกวิเคราะห์ข้อความจากคลิปบอร์ดเป็นแถวคั่นแท็บด้วย type sniffing ชุดเดียวกับที่ TXLSCSVLoader ใช้กับ CSV และตัวช่วย Biff8 ตรวจจับและอ่านสตรีม native ที่ Excel วางบนคลิปบอร์ดเอง ข้อมูลที่วางจึงคงทั้งค่า สูตร และการจัดรูปแบบไว้โดยไม่สูญเสียข้อความ

การ resolve ข้อความแสดงผลของเซลล์

TXLSCellDisplayMode = (xcdmFormattedValue, xcdmFormulaText,
  xcdmSuppressedZero);

TXLSCellDisplayOptions = record
  ShowFormulas: Boolean;
  ShowZeros: Boolean;
  SheetProtected: Boolean;
  FormulaWidthFactor: Double;
  DateSerialZero: Double;
end;

TXLSCellDisplayInput = record
  HasFormula: Boolean;
  FormulaHidden: Boolean;
  IsNumericZero: Boolean;
  FormulaText: WideString;
  FormattedText: WideString;
end;

TXLSCellDisplayResult = record
  Mode: TXLSCellDisplayMode;
  Text: WideString;
  TreatAsText: Boolean;
  EffectiveWidthFactor: Double;
end;

function XLSDefaultCellDisplayOptions: TXLSCellDisplayOptions;
function XLSNormalizeFormulaDisplayText(const FormulaText: WideString): WideString;
function XLSResolveCellDisplay(const Options: TXLSCellDisplayOptions;
  const Input: TXLSCellDisplayInput): TXLSCellDisplayResult;
      
resolver ตัวเดียวที่ใช้ร่วมกันตัดสินว่าเซลล์จะแสดงอะไรภายใต้สถานะมุมมองหนึ่ง ๆ: แสดงสูตรแทนค่า, ระงับศูนย์, ซ่อนข้อความสูตรบนชีตที่ป้องกันไว้ และตัวคูณความกว้างสองเท่าที่ Excel ใช้กับการแสดงสูตร ตัวแสดงสมุดงานและตัวเรนเดอร์เรียกผ่านจุดเข้า display options ของตัวเอง และแอปพลิเคชันเรียก XLSResolveCellDisplay โดยตรงด้วยเรกคอร์ดอินพุตของตัวเองได้ XLSDefaultCellDisplayOptions คืนค่าเริ่มต้น canonical และ XLSNormalizeFormulaDisplayText ปรับสตริงสูตรให้เหมาะกับการแสดงผล

ออบเจกต์การตรวจสอบข้อมูลแบบคลาสสิก

TXLSDataValidationType = (xlsDvAny, xlsDvWhole, xlsDvDecimal, xlsDvList,
  xlsDvDate, xlsDvTime, xlsDvTextLength, xlsDvCustom);
TXLSDvErrorStyle = (xlsDvErrStop, xlsDvErrWarning, xlsDvErrInformation);

TDVRange = class;             { one validation rule over one or more ranges }
TDVRangeList = class;         { the per-sheet rule collection }
TDataValidator = class;       { engine that checks edits against the rules }
      
ตัวช่วย TXLSWorksheet.Add*Validation แบบมีชนิดสร้างกฎ TDVRange ลงใน TDVRangeList ของชีต กฎแต่ละข้อมี TXLSDataValidationType ขอบเขต ข้อความ input และ error และ TXLSDvErrorStyle TDataValidator ประเมินการแก้ไขเทียบกับกฎและรายงานว่าค่านั้นยอมรับได้หรือไม่ ซึ่งเป็นการตรวจเบื้องหลังข้อความแจ้งการตรวจสอบข้อมูลของ Excel เอง

การสแกนและการแก้ค่าสีที่จัดทำดัชนี

TXLSIndexedColorKind = (xickPalette, xickAutomatic, xickSystem, xickInvalid);
TXLSSystemColorRole = (xscrNone, xscrWindowText, xscrWindowBackground,
  xscrChartText, xscrChartBackground, xscrChartNeutral, xscrToolTipText);

TXLSIndexedColorResolution = record
  Kind: TXLSIndexedColorKind;
  RawIndex: Int64;
  PaletteSlot: Integer;
  SystemColorRole: TXLSSystemColorRole;
  ARGB: LongWord;
  HasResolvedColor: Boolean;
end;

TXLSNearestIndexedColorMatch = record
  InputARGB: LongWord;
  ColorIndex: Integer;
  PaletteSlot: Integer;
  ARGB: LongWord;
  DistanceSquared: Double;
  ExactMatch: Boolean;
end;

TXLSIndexedColorUsageKind = (xicukFont, xicukFillForeground,
  xicukFillBackground, xicukGradient, xicukBorder, xicukConditionalFormat,
  xicukChart, xicukShape, xicukComment, xicukWorksheet, xicukOther);
      
เรกคอร์ดเหล่านี้รองรับเมธอดระดับสมุดงาน ResolveIndexedColor, NearestIndexedColor และ ScanIndexedColorUsage: ผลการแก้ค่ารายงานว่าโทเคนที่จัดทำดัชนีมาจากแหล่งใดในสี่แหล่งของ TXLSIndexedColorKind พร้อมช่องพาเลต บทบาทสีระบบ และ ARGB ที่ปรับมาตรฐานแล้ว การจับคู่ใกล้ที่สุดเพิ่มระยะ RGB ยกกำลังสองกับแฟล็กตรงตัว และการสแกนการใช้งานจะแท็กทุกหมวดหมู่ผู้บริโภคที่ล็อกช่องพาเลตไว้ ไลบรารีเก็บแคช TXLSIndexedColorMatcher ภายในซึ่งใช้ palette generation เป็น key — FindNearest ตอบคำถามสีใกล้ที่สุดจากแคชนี้และ UpdateSlot แก้ช่องพาเลตหนึ่งช่อง — การแก้ค่าซ้ำ ๆ จึงไม่ต้องจัดสรรหน่วยความจำเพิ่ม

ตัวช่วยการอ้างอิง A1

function XLSA1CellRef(ARow, ACol: Integer): WideString;
function XLSTryParseA1CellRef(const ARef: WideString;
  out ARow, ACol: Integer): Boolean;
function XLSTryParseA1RangeRef(const ARef: WideString;
  out ARow1, ACol1, ARow2, ACol2: Integer): Boolean;
      
ตัวช่วยอิสระสำหรับ notation A1 ชุดเดียวกับที่ API ของสมุดงานยอมรับ: จัดรูปพิกัดเริ่มที่ศูนย์เป็นการอ้างอิงเซลล์ A1 และแยกวิเคราะห์การอ้างอิงเซลล์หรือช่วงกลับเป็นพิกัด โดยคืน False เมื่ออินพุตเสียรูปแทนการ raise

ดูเพิ่มเติม