اعضای تکمیلی API کتابخانه
این صفحه مرجع نوعهای عمومی را تکمیل میکند؛ نوعهایی که APIهای اصلی کتاب کار، کاربرگ، رندر، درونریزی، تشخیص خطا و نمایشگر را پشتیبانی میکنند اما نیازمند راهنمای مستقل و وظیفهمحور نیستند
پالایش و قالببندی شرطی
TXLSAutofilter | Add، AddAutofilterData، AssignFrom، Clear و ParseAutofilterData تعریف پالایه را ویرایش یا درونریزی میکنند؛ Defined، FirstRow، FirstCol، LastCol، LastRow و FieldCount محدودههای فعال و شمار ستونهای پالایششده را در معرض میگذارند |
TXLSAutofilterItem | Shape رسم دکمه پالایه مرتبط با آیتم را در معرض میگذارد و معیار پالایه بارگذاریشده بهصورت رکورد عملوند TXLSAutofilterDOPER در دسترس است — DataType شکل عملوند را برمیگزیند و grbitSgn بیتهای علامت و پرچم را حمل میکند — برای بازرسی یا ویرایش با رفتوبرگشت |
TXLSDataBarSpec | AxisColor، AxisIsThemeColor، AxisThemeColorId، AxisThemeColorTint و ClearAxisThemeColor محور را کنترل میکنند؛ Direction، GradientFill، NegativeBarBorderColorSameAsPositive، NegativeBarColor، NegativeBarColorSameAsPositive و NegativeBorderColor ظاهر نوارها را کنترل میکنند؛ IsIndexedColor، IndexedColorIndex و ClearIndexedColor رنگ نوار با اندیس پالت را مدیریت میکنند |
TXLSIconSetSpec | ThresholdEqualsInclude برای هر آستانه آیکون، مقایسه شامل یا غیرشامل را برمیگزیند |
TXLSCfValue | IsIndexedColor و IndexedColorIndex رنگ آستانه ذخیرهشده بهصورت اندیس پالت قدیمی را گزارش میکنند، ClearIndexedColor آن شکل را دوباره برمیدارد و رنگهای تم یا مستقیم از طریق دسترسیکنندههای موجود در دسترس میمانند |
TXLSCfValue، TXLSDataBarSpec، TXLSColorScaleSpec، TXLSIconSetSpec و TXLSDxfStyle مقدار AttachWriteGuardOwner را میپذیرند و شیء قاعده را به کتاب کار مالک آن پیوند میزنند تا ویرایشها بهطور خودکار نگهبان نوشتن بگیرند؛ مالک، TXLSCondFormatWriteGuardOwner را پیادهسازی میکند که تنها متدش یعنی AcquireWriteGuard نگهبان نوشتن کتاب کار را به قاعده میدهد. TXLSDxfStyle علاوه بر آن FontColorIndex با FontColorIsIndexed و زوجهای FillFgColorIndex / FillFgColorIsIndexed و FillBgColorIndex / FillBgColorIsIndexed را برای رنگهای قاعده با اندیس پالت میافزاید، بهعلاوه overrideهای فونت تمایزی یعنی FontName، FontSize و FontScheme (رشته خالی، یک اندازه point، یا اسلات فونت تم مانند major / minor) در کنار اعضای موجود bold، italic، underline و رنگ؛ هر تخصیص نگهبان نوشتن را میگیرد و قاعده را برای انتشار مجدد dirty علامت میزند
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 و گروهبندی محوری
TXLSDataTable | Assign، ContainsCell و IsRoot جدول را کپی و بازرسی میکنند؛ Kind، FirstRow، FirstCol، LastCol، LastRow، AlwaysCalculate، ColumnInputCol، ColumnInputRow، ColumnInputDeleted، RowInputCol، RowInputRow و RowInputDeleted تعریف محاسبه ذخیرهشده را در معرض میگذارند |
TXLSDataTables | Add، AddExisting، Delete، Clear، Assign، AdjustForShift و Offset مجموعه را نگه میدارند؛ FindByCell و FindRoot جدولی را که سلول دادهشده را در بر دارد یا ریشه در آن دارد مکانیابی میکنند؛ Count، Items و OnChange وضعیت مجموعه را در معرض میگذارند |
TXLSPivotCacheField | GroupBaseField و GroupParentField رابطه میان فیلد گروهبندیشده و فیلد مبدأ یا والد آن را در معرض میگذارند |
آستانههای مجموعه آیکون را میتوان بهصورت برنامهنویسیشده رندر یا اعتبارسنجی کرد: XLSCfIconSetCount گزارش میکند یک TXLSIconSetType چند آیکون تعریف میکند و XLSBuildCfIconGeometry یک TXLSCfIconGeometry را با شکلهای پایه (TXLSCfIconPrimitive، از نوع TXLSCfIconPrimitiveKind: cfipPolygon، cfipEllipse، cfipRect، cfipLine) و نقاط (TXLSCfIconPoint) رسمکننده یک آیکون پُر میکند تا رندرکنندههای سفارشی با شکلهای آیکون داخلی Excel مطابقت کنند
تشخیص خطا، ردگیری فرمول و اعتبارسنجی
TXLSDiagnostic | Code، NativeCode، Message، Severity، ExceptionClass، PartName، RecordId، SheetIndex، SheetName و StreamOffset یک تشخیص تجزیهگر، نویسنده یا بسته را شناسایی میکنند |
TXLSDiagnostics | Add تشخیصی میافزاید، Clear مجموعه را بازنشانی میکند و Count همراه Items مدخلهای آن را برمیشمارند |
TXLSDiagnosticSeverity و TXLSDiagnosticOperation | TXLSDiagnosticSeverity (xlsDiagnosticInfo، xlsDiagnosticWarning، xlsDiagnosticError، xlsDiagnosticFatal) یک تشخیص را دستهبندی میکند و TXLSDiagnosticOperation (xlsOperationNone، xlsOperationOpen، xlsOperationSave، xlsOperationCalculate، xlsOperationExport) فازی را که آن را تولید کرده نام میبرد؛ کنترلکنندههای OnDiagnostic هر دو را از TXLSDiagnostic تحویلشده میخوانند |
TXLSFormulaDebugSession | CurrentStep، DependencyCount، NodeCount و StepCount تصویر لحظهای فعلی اشکالزدا و اندازههای ردگیری آن را در معرض میگذارند |
TXLSFormulaTracer | StepCount تعداد گامهای ارزیابی ثبتشده را گزارش میکند |
TXLSImportCheck | AddRule، Annotate، KeepOnlyViolations و Violation اعتبارسنجی درونریزی را پیکربندی و اجرا میکنند؛ HeaderRow، FirstRow، LastRow، OnVerifyCell و ViolationCount محدودهها، فراخوان و شمار نتایج را در معرض میگذارند. قواعد، اشیای TlxImportColumnRule هستند که TlxImportRuleFlags آنها بررسیهای یک ستون کاربرگ یک-مبنا را برمیگزینند و هر TlxImportViolation سطر، ستون، متن متخلف و پیام خطا را گزارش میکند |
سیاستهای ذخیرهسازی پیوند خارجی
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 شکستهای نماد فرمول و ناهمخوانیهای مقدار حافظه پنهان را در دستههای ساختیافته پایدار گرد میآورد — با مختصات کاربرگ، فرمولها، نمادها، مقادیر مورد انتظار و واقعی و برش محدودشده — در حالی که حافظههای پنهان و معناشناسی کتاب کار دستنخورده میمانند. RecalcAndVerifyEx ممیزی عمیق را اجرا میکند: هر فرمول را یکبار از طریق گراف وابستگی در یک لایه همپوشانی نتیجه مجزا ارزیابی میکند تا سلولهای وابسته مقدار همین پاس را بخوانند نه حافظه پنهان کهنه را، شکستهای ارزیابی (آرگومانهای پشتیبانینشده، ارجاعهای حلقوی، ارجاعهای خارجی ردشده یا مفقود، جدولهای داده ردشده، لغو عملیات و شکستهای داخلی) را با کدهای نتیجه دستهبندی میکند، بهازای هر شکست یک پشته فراخوان محدودشده ثبت میکند، به بودجه مساله و گیرنده پیشرفت/لغو پایبند است و تا زمانی که ApplyResults پس از یک پاس کاملاً موفق روی ساختار تغییرنکرده کتاب کار، مقادیر بازمحاسبهشده را بهصورت اتمیک اعمال نکند، فقطخواندنی میماند
هر عنصر TXLSCalculationAuditReport.Issues یک TXLSCalculationAuditIssue است؛ Kind یکی از دستههای xlcai* را برمیگزیند، Expected / Actual مقادیر مقایسهشده را برای ناهمخوانیهای حافظه پنهان حمل میکنند، Stack زنجیره فراخوان ارزیابیِ محدودشده است که بهشکل Sheet!A1 > Sheet!B2 رندر میشود (دورترین فریم اول) و ExternalTarget کتاب کار خارجی را برای مسایل ارجاع خارجی توصیف میکند. TXLSRecalcAuditOptions.OnProgress گیرندهای از نوع TXLSRecalcAuditProgress است که پیشرفت گره را بهصورت ACurrent / ATotal دریافت میکند و میتواند ACancel را تنظیم کند تا ممیزی در مرز گره بعدی با یک مساله xlcaiCancelled متوقف شود
RunCalculationAudit نقطه ورود موتور است که پوششهای ممیزی در سطح کتاب کار به آن واگذاری میکنند و همان رکورد گزینهها را میپذیرد. FormulaIsVolatile گزارش میکند که آیا یک فرمول هر پاس بازمحاسبه را الزامی میکند (فراخوانهایی مانند NOW، RAND، TODAY، OFFSET، INDIRECT یا ارجاعی حلناپذیر)
لایه همپوشانی ممیزی، لایهای What-if روی حافظههای پنهان سلول است: AuditOverlayWrite مقدار جایگزین را برای یک سلول ذخیره میکند (اندیس کاربرگ یک-مبنا، سطر و ستون صفر-مبنا مطابق قرارداد محاسبهگر)، AuditOverlayRead و AuditOverlayHash از آن پرسوجو میکنند و AuditOverlayClear لایه را خالی میکند. مقادیر همپوشان توسط Getterهای معمول مقدار سلول برگردانده میشوند، بنابراین بازمحاسبه و ممیزی عمیق آنها را بدون تغییر سلولهای کاربرگ مشاهده میکنند؛ خالیکردن همپوشانی، مقادیر ذخیرهشده را بازمیگرداند
ویژگیهای راهنمای کتاب کار، حالتهای مفقود، false، true، غیرفعال، خودکار و دستی را هرجا قالب مبدأ پشتیبانیشان کند نگه میدارند؛ این ویژگیها هنگام باز کردن هرگز محاسبه، تازهسازی، کار فایلسیستم، شبکه یا پایگاه داده را آغاز نمیکنند
property TXLSXTable.ColumnCalculatedFormulaArrayStates[Index: Integer]: TXLSTableFormulaArrayState;
property TXLSXTable.ColumnTotalsFormulaArrayStates[Index: Integer]: TXLSTableFormulaArrayState;
property TDataValidation.ImeMode: TXLSDataValidationImeMode;
property TXLSXDataValidation.ImeModeKind: TXLSDataValidationImeMode;
فرمولهای ستون محاسبهشده و سطر جمع، حالتهای آرایهای مستقلِ غایب، false، true یا ناشناخته را نگه میدارند، از جمله مقادیر لغوی دستنخورده مبدأ و ویرایشهای ساختاری ستون؛ فرمولهای آرایهای در گسترش اسکالری سطر رد میشوند و بیسروصدا تغییر نمیکنند
حالتهای IME از نگاشتهای صریح BIFF و OOXML استفاده میکنند، مقادیر ناشناخته مبدأ را حفظ میکنند و مقدار غیرفعالِ مخصوص 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;
متدهای بازرسی فقط روابط داخلی ریشهی بسته را میشناسند که نوعشان دقیقاً با نوع رابطه پنل وظیفه افزونه وب مطابقت داشته باشد؛ روابط خارجی، انواع با حروف متفاوت، روابط کاربرگ و بخشهای همنام مشابه نادیده گرفته میشوند
حذف، نخست نمودار کامل رابطهها را اعتبارسنجی میکند، شامل هدفهای نرمالشده، محدودیت به ریشه بسته، چرخهها، بخشهای مفقود و سقف منابع؛ سپس همه روابط ریشه منطبق و فقط بخشهای قابلدسترسی را که با رابطه نگهداشتهشده دیگری مشترک نیستند، همراه با بخشهای رابطه متعلق به مبدأهای حذفشده، برمیدارد
عملیات اتمیک و idempotent است، بخشهای مبدأ حذفشده از طریق ذخیرهسازی کپی فشرده بازنمیگردند و انواع محتوا از بسته باقیمانده بازسازی میشوند؛ نمودار بدشکل کد تشخیص 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 این سه حالت را به رکورد نمایش اشیای کتاب کار خود نگاشت میکند و XLSX آنها را به workbookPr.showObjects نگاشت میکند؛ مقادیر مفقود به xlsodmShowAll پیشفرض میشوند، بارهای رزرو Classicِ دستنخورده و توکنهای پشتیبانینشده XLSX بدون افت میمانند و تخصیصهای صریح فقط مقادیر متعارف صادر میکنند
نمایشگر، حالت Placeholder را بهشکل جعبههای سبک رندر میکند که نوع، نام، متن و متن جایگزینِ در دسترس شیء را حمل میکنند؛ صادرکنندهها بهطور پیشفرض اشیای کامل را نگه میدارند و تنظیم ExportObjectPlaceholders همان سیاست کمهزینه را بدون رمزگشایی بارهای تصویر یا ساخت صحنه نمودار درخواست میکند
xlsodmHideAll پیش از آغاز رندر، از جمعآوری Drawingها و گسترش محدوده ناشی از اشیا جلوگیری میکند؛ تبدیل کتاب کار هر سه حالت را با خود حمل میکند، ODS برای حالت Placeholder رسم کامل مینویسد و برای حالت hide-all خروجی Drawing و رسانه را حذف میکند و پسزمینههای کاربرگ مستقل میمانند
مقادیر کالیبراسیون رندر و تصاویر لحظهای
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 کلاسیک 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 را از جریان یا فایل با مختصات شروع اختیاری، انتخاب جدول و جداکننده اعشار به کاربرگ درونریزی میکنند |
TXLSCodeGen | Language (از نوع TlxCodeGenLanguage: lcgDelphi یا lcgCppBuilder) گویش مبدأ دستورات تولیدشده را برمیگزیند، GenerateToList کد تولیدشده کتاب کار را در فهرست رشتهای مینویسد و TlxCodeGenOptions خروجی را با ادغامها، عرض ستونها یا قالبهای عددی گسترش میدهد (cgoMerges، cgoColumnWidths، cgoNumberFormats؛ برگهها و سلولها همیشه صادر میشوند) |
TXLSXWorkbookCompare | LeftName و RightName ورودیها را برچسب میزنند، Compare مقایسه را انجام میدهد و Diff مدخلهای TlxCompareDiff حاصل را که با TlxCompareKind دستهبندی شدهاند در معرض میگذارد |
TXLSFileMonitor | IntervalMs بازه پرسوجوی دورهای و SynchronizeEvent تحویل همگام فراخوان را برمیگزیند؛ کنترلکننده OnFileChanged میتواند مانیتور را غیرفعال یا نابود کند یا FileName را برای پایش فایل دیگری تغییر دهد |
TXLSCSVLoader و TXLSCSVSaver | بارگذار، متن جداشدهشده را به یک گرید درونحافظهای از Variantها تجزیه میکند — ParseFile و ParseStream گرید را پُر میکنند و CellValue، RowCount و ColCount آن را میخوانند — همراه با جداکننده خودکشفشونده (ValueSeparator) و کدگذاری (TXLSCsvEncoding: ANSI سیستم، UTF-16، UTF-8) و ارتقای نوع اختیاری که با DetectTypes و مدخلهای ColumnTypes هر ستون کنترل میشود (TXLSCsvColumnType: auto، text، number، date، boolean، skip)؛ SkipRows، AutoTrim، LocaleTolerantNumbers و FieldWidths رفتار عرض-ثابت و locale را دقیقتر میکنند. TXLSCSVSaver.SaveAs گرید را با کوتیشنگذاری RFC 4180 بازمینویسد و QuoteAllStrings کوتیشنگذاری را اجباری میکند؛ TXLSTSVSaver برای خروجی جداشده با تب از همین Saver مشتق میشود |
کمککنندههای بسته و ذخیرهسازی باینری
TXLSXOpaquePackage | LoadWorkbookXmlMetadata وضعیت XML در سطح کتاب کار را ثبت میکند، MarkAllPartsClean پرچمهای کهنگی را بازنشانی میکند و WorkbookExtLstXml همراه WorkbookRootAttributesXml قطعههای XML حفظشده کتاب کار را در معرض میگذارند؛ IsDiscardedPart گزارش میکند که آیا نام بخشی با عملیات دورانداختن مانند پاکسازی افزونه وب حذف شده است |
TXLSFileStorage | Load، LoadFolder، Write و WriteFolder محتوای فایل مرکب را منتقل میکنند؛ Child و Count مدخلهای فرزند را برمیشمارند که هر کدام یک TXLSFileItem است — گره ذخیرهسازی نامداری که زیرکلاس TXLSFileStream آن بایتهای ذخیرهشده را بهصورت TXLSBlob حمل میکند و DataSize طول بار را گزارش میکند |
TXLSBlob | Add بلاب دیگری میافزاید و AddByte، AddWord، AddLong، AddDouble، AddString و AddWideString مقادیر نوعدار میافزایند؛ CopyData، CopyMem، FillByte، Write، Clear، Reset و Dump محتوا را مدیریت میکنند؛ Buff و DataLength ذخیرهسازی را در معرض میگذارند |
TXLSBlobList | Append، AppendList، CopyData و Write مدخلها را ترکیب یا صادر میکنند؛ Entries و TotalSize وضعیت فهرست را در معرض میگذارند |
TXLSWideStringBuilder | AddString متن میافزاید و Length شمار نویسههای انباشته را گزارش میکند |
افزودههای رسم و نمایشگر کتاب کار
TXLSFillFormat | PictureFill پرکننده شکلی مبتنی بر تصویر را پیکربندی میکند و FillType نوع پرکننده (توپر، گرادیان، تصویر یا بافت پیشتنظیم) را که نویسنده صادر میکند برمیگزیند |
TXLSShapes | AddScrollBar و AddSpinner کنترلهای فرم میسازند — اشیای TXLSScrollBar و TXLSSpinner بازگرداندهشده هندسه کنترل و سلول متصل را در معرض میگذارند و Spinner حدود گام Min، Max و Inc را میافزاید — و RegisterScrollBar و RegisterSpinner کنترلهای بارگذاریشده از کتاب کار را ثبت میکنند |
TXLSWorkbookViewer | CanUndo و CanRedo در دسترس بودن تاریخچه ویرایش را گزارش میکنند و ReferencePickMode گزینش تعاملی ارجاع سلول یا بازه را فعال میکند |
صفحهبندی، خروجی تصویر و چاپ
TXLSGraphicsBackend | DrawTiledImage پسزمینه کاربرگ را بهشکل تکرارشونده در سراسر ناحیه بریدهشده صفحه میکشد |
TXLSPaginationModel | CompactRangeMode، IncludeDrawings، IncludeGridlines، IncludeCellBorders و PaintPageBackground محتوای صفحه را کنترل میکنند؛ RenderDPI، RenderColorMode و RenderSession تفکیکپذیری خروجی، مدیریت رنگ و نشست رندر فعال را در معرض میگذارند |
TXLSCellImageExporter | Measure ابعاد پیکسلی بازههای کلاسیک یا XLSX را محاسبه میکند؛ ImageFormat، JpegQuality، MaxPixels، MaxBytes، IncludeObjects، IncludeGridlines، IncludeCellBorders، BackgroundColor، TransparentBackground، BeforePaint، AfterPaint و PaginationModel رندر را پیکربندی و مشاهده میکنند |
TXLSPageImageExporter | BeforePaint، AfterPaint، MaxPixels، MaxBytes، BackgroundColor و TransparentBackground همان قلابهای نقاشی و سقفهای ایمنی خروجی را بر صادرات تصویر صفحهبندیشده اعمال میکنند |
TXLSPrintDocument | PrintWorksheet، PrintWorkbook و PrintAllVisibleSheets محتوای کلاسیک یا XLSX را به چاپگر VCL میفرستند؛ FirstPage، PrintRangeOnly، Collate، Copies، OnBeforeNewPage و OnAfterGeneratePage کار چاپ را کنترل میکنند |
مدلهای نمودار کلاسیک و اشیای نمودار کاربرگ
TXLSChartSeries | AddTrendline و AddErrorBars حاشیهنویسیهای نوعدار سری میسازند و TrendlineCount و ErrorBarCount اندازه مجموعههایشان را گزارش میکنند |
TXLSChartAxis | HasAxcExtFlag یک پرچم خام AXCEXT را بدون آنکه فراخوان مجبور به رمزگشایی ماسک بیت شود آزمایش میکند |
TXLSChartModel | AxisGroupCount شمار گروههای محور اصلی و ثانویه رمزگشاییشده از نمودار را گزارش میکند |
TXLSCustomChart | AddAreaData آیتم مساحتی از پیش ساختهشده را برای اتصال دوباره فرمول در زمان ذخیره میافزاید و ApplyDateAxisModel مدل نوعدار محور تاریخ را روی رکوردهای خام نمودار اعمال میکند |
TXLSWorksheet | AddChartObject یک فریم نمودار را روی کاربرگ لنگر میکند و آن را به سازنده نمودار مشترک وصل میکند |
TXLSXChartLayoutResolver | TryResolve یک مستطیل چیدمان را با اعتبارسنجی اندازه اختیاری حل میکند و ResolveChart مستطیلهای نمودار، عنوان، راهنما، ناحیه رسم و محور را محاسبه میکند |
مدل رمزگشایی نوعدار نمودار
وضعیت رمزگشاییشده نمودار بهشکل رکوردها و نوعهای شمارشی ساده در معرض قرار میگیرد تا کد بازرسی هرگز مجبور به پیمایش رکوردهای خام 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 در معرض میگذارد؛ حاشیهنویسیهای خط روند و میله خطا، اشیای نوعداری هستند (TXLSChartTrendline، TXLSChartErrorBars) که از هر سری در دسترساند
رکوردهای ساخت نمودار
تألیف برگ نمودار و سازنده، بهجای گراف اشیا رکوردهای ساده میپذیرد: TXLSChartTrendlineInfo، TXLSChartErrorBarsInfo، TXLSChartDataLabelsInfo و TXLSChartSeriesStyleInfo مدخلهای سریای را که به TXLSWorksheets.AddChartSheet و سازنده نمودار مشترک داده میشوند پُر میکنند و TXLSPivotChartInfo قاببندی نمودار محوری را توصیف میکند که هنگام اتصال نمودار به یک جدول محوری به کار میرود
پیوستهای PDF، امضاها و صادرات HTML
IXLSPDFAttachmentSource | WriteTo بایتهای پیوست را بدون آنکه صادرکننده به مالکیت داده مبدأ نیاز داشته باشد به جریان صادرات PDF میفرستد |
TXLSPDFExport | AttachmentDuplicatePolicy رفتار نام تکراری را برمیگزیند، AttachmentSpoolThreshold اسپولکردن پیوست را کنترل میکند و DocumentLanguage فراداده زبان سند را مینویسد |
TXLSPDFSignature | TextAlign، TextSize، TextColor، TextBold و TextItalic ظاهر امضای مرئی را پیکربندی میکنند |
TXLSHTMLExport | ViewMode (از نوع TXLSHtmlViewMode: نمای جاری یا جدول کامل صفحه گستر) ارائه HTML را برمیگزیند و HotTrackTargets (مجموعهای از TXLSHtmlHotTrackTarget) و HotTrackColor هایلایت تعاملی سلول و شیء را پیکربندی میکنند |
TXLSXHtmlExportOptions | ViewMode، HotTrackTargets و HotTrackColor معادل همان کنترلها را برای صادرات HTML در XLSX فراهم میکنند |
ممیزی محاسبه و کنترلهای کتاب کار
TXLSCalculationAuditReport | Truncated برش ناشی از سقف مسایل را گزارش میکند، StackTruncated برش فریمهای پشته فراخوان را گزارش میکند و Issues مسایل محاسبه ثبتشده را اندیس میکند |
TXLSUserFunctionRegistry | هرگاه مجموعه توابع کاربر ثبتشده تغییر کند Generation تغییر میکند و امکان باطلکردن اتصالهای فرمول ذخیرهشده در حافظه پنهان را فراهم میآورد |
EXLSReportRecoverableData | Category دسته داده گزارش بازیافتپذیری را که به فراخوان ارائه میشود شناسایی میکند |
IXLSWorkBook | ManualCalculationThreadCount شمار ورکرهای بهکاررفته در محاسبه دستی را محدود میکند |
TXLSXDataValidation | HasUnknownImeMode مقدار حالت IMEای را گزارش میکند که HotXLS حفظ کرده اما نمیشناسد |
TXLSXTable | ColumnCalculatedFormulaArrayRaw و ColumnTotalsFormulaArrayRaw متن اصلی فرمول آرایهای ستونهای جدول را در معرض میگذارند |
سازگاری قاببندی قدیمی PivotCache
TXLSPivotCache | RawBucketIndex موقعیت زیرجریان مبدأ را شناسایی میکند، RawFramingIsLegacy یک قاببندی قدیمی HotXLS را شناسایی میکند، RawModelIsComplete گزارش میکند که مدل نوعدار هر رکورد را بازنمایی میکند و CanUpgradeFraming گزارش میکند که بازصادر نوعدار داوطلبانه ایمن است |
TXLSPivotCache | StreamId هویت جریان حافظه پنهان کلاسیک را در معرض میگذارد، SourceDataType نوع داده مبدأ کلاسیک را در معرض میگذارد و RawHasStorageStream گزارش میکند که آیا حافظه پنهان بارگذاریشده از یک جریان ذخیرهسازی مستقل PivotCache آمده است |
TXLSWorkbook | UpgradeLegacyPivotCacheFraming بازنویسی را فقط برای قاببندیهای قدیمی HotXLS که مدل نوعدارشان کامل است انتخاب میکند؛ بازپخش معمولی حافظه پنهان خام پیشفرض میماند |
StreamId بهصورت رکورد SXStreamID ([MS-XLS] §2.4.303) نوشته و بهشکل فیلد idstm سرصفحه SXDB تکرار میشود و این فیلد باید با آن برابر باشد؛ SourceDataType بهصورت رکورد SXVS ([MS-XLS] §2.4.317: $0001 کاربرگ، $0002 خارجی، $0004 تلفیق، $0010 سناریو) نوشته و بهشکل فیلد vsType سرصفحه SXDB تکرار میشود و این فیلد باید با آن برابر باشد. حافظههای پنهان ساختهشده از یک بازه کاربرگ با نوع کاربرگ آغاز میشوند، در حالی که حافظههای پنهان خواندهشده از فایل مقداری را نگه میدارند که زیرجریانشان حمل میکرده، تا نویسنده BIFF هرگز فیلد SXDBای باقی نگذارد که رکوردی را نام ببرد که صادرش نکرده؛ RawHasStorageStream حافظه پنهان بارگذاریشده از جریان ذخیرهسازی خودش را نشان میگذارد که توصیفگر سراسری کتاب کارش پیش از رکوردهای حافظه پنهان قرار دارد
یکپارچگی کلیپبورد و گزینههای چسباندن
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;
گزینههای چسباندن بین سربارگذاریهای PasteFromClipboard هر دو Facade مشترکاند: xlpoValuesOnly مقادیر حافظه پنهان سلولهای فرمول را نگه میدارد و از قالبها و ادغامها میگذرد، در حالی که xlpoInsertRows و xlpoInsertCols پیش از فرود بلوک، محتوای موجود را جابهجا میکنند
این کمککنندهها کلیپبورد Windows را برای همکنشپذیری صفحه گستر در بر میگیرند: کمککنندههای متن از CF_UNICODETEXT استفاده میکنند (با Fallback به CF_TEXT از طریق صفحه کد ANSI جاری)، XLSSetClipboardTextAndHtml متن و یک بار HTML Format قالببندیشده را در یک تراکنش مینویسد، XLSBuildHtmlClipboard بایتآفستهای CF_HTML را برای سند یا قطعه محاسبه میکند و XLSEncodeClipboardField یک فیلد جداشده با تب را کوتیشن میکند. XLSParseClipboardGrid متن کلیپبورد را بهعنوان سطرهای جداشده با تب، با همان تشخیص نوعی که TXLSCSVLoader برای CSV به کار میبرد تجزیه میکند و کمککنندههای Biff8 جریان بومیای که خود Excel روی کلیپبورد میگذارد را شناسایی و میخوانند تا داده چسباندهشده بدون افت متن، مقادیر، فرمولها و قالببندی را حفظ کند
تعیین متن نمایش سلول
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;
یک حلکننده مشترک تعیین میکند که یک سلول برای وضعیت نمایش دادهشده چه چیزی نشان دهد: فرمول بهجای مقدار، صفرهای سرکوبشده، متن فرمول پنهان روی برگههای محافظتشده و ضریب عرض دوبرابری که Excel برای نمایش فرمول اعمال میکند. نمایشگر کتاب کار و رندرکنندهها از طریق نقاط ورود گزینههای نمایش خود آن را فرامیخوانند و برنامهها میتوانند XLSResolveCellDisplay را مستقیماً با رکوردهای ورودی خودشان صدا بزنند؛ XLSDefaultCellDisplayOptions پیشفرضهای متعارف را برمیگرداند و 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، کرانها، پیامهای ورودی و خطا و 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 کلیدخورده با نسل پالت نگه میدارد — 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;
کمککنندههای مستقلی برای همان نمادگذاری A1 که APIهای کتاب کار میپذیرند: مختصات صفر-مبنا را بهصورت ارجاع سلول A1 قالب میکنند و ارجاع سلول یا بازه را دوباره تجزیه میکنند و برای ورودی بدشکل بهجای ایجاد استثنا False برمیگردانند
همچنین ببینید