HotXLS Belgeleri

Ek XLSX Facade API üyeleri

Bu sayfa, lxHandleXtarafından bildirilen daha küçük genel API üyelerini kapsar; HTML dışa aktarma seçenekleri ve doğrudan XLSX hücre başvuruları veya XML yükü metniyle çalışan çağıranlar için yardımcı işlevler dahildir

Formül dizisi bellek sınırı

property FormulaArrayMemoryLimit: Int64;
      
Üretilmiş formül dizilerinin ayırdığı yükü sınırlar, örnek diziler: MUNITgibi üretilmiş formül dizilerinin ayırdığı yükü sınırlar, varsayılanı 64 MiB'dir, paralel yeniden hesaplama işçilerine uygulanır ve bir Double öğenin altındaki değerleri kırpar

HTML dışa aktarma seçenekleri

type
  TXLSXHtmlExportOptions = class
    constructor Create;
    property Title: WideString;
    property WriteDocument: Boolean;
    property IncludeStyles: Boolean;
    property IncludeBOM: Boolean;
    property TableClass: WideString;
  end;
      
TitleSets the document title when WriteDocument True olduğunda belge başlığını ayarlar
WriteDocumentTrue olduğunda eksiksiz bir HTML belgesi yazar. False olduğunda yalnızca tablo parçasını yazar
IncludeStylesDışa aktarılan HTML'in üretilen CSS ve satır içi stil bilgisi içerip içermediğini denetler
IncludeBOMDosya ve akış çıktısının UTF-8 BOM ile başlayıp başlamadığını denetler
TableClassÜretilen <table> öğesine bir CSS sınıfı adı ekler

XLSX başvuru yardımcı işlevleri

function XlsxColumnLabel(Col: Integer): WideString;
function XlsxCellRef(Row, Col: Integer): WideString;
function XlsxColumnIndex(const ColumnLabel: WideString): Integer;
function XlsxParseCellRef(const Ref: WideString; out Row, Col: Integer): Boolean;
function XlsxParseRangeRef(const Ref: WideString; out Row1, Col1, Row2, Col2: Integer): Boolean;
      
XlsxColumnLabel1 tabanlı bir sütun dizinini A, Zveya AA
XlsxCellRef1 tabanlı satır ve sütun numaralarından A1 tarzı bir hücre başvurusu oluşturur
XlsxColumnIndexA1 tarzı bir sütun etiketini 1 tabanlı bir sütun dizinine dönüştürür
XlsxParseCellRefTek bir A1 tarzı hücre başvurusunu ayrıştırır ve satır ve sütun koordinatlarını döndürür
XlsxParseRangeRefDikdörtgen bir A1 tarzı aralığı ayrıştırır ve kapsayıcı 1 tabanlı sınırları döndürür

XLSX XML kaçış yardımcı işlevleri

function XlsxEscapeText(const Value: WideString): WideString;
function XlsxEscapeAttr(const Value: WideString): WideString;
      
XlsxEscapeText , XML metin düğümü içeriğini kaçışlar; XlsxEscapeAttr ise XML öznitelik değerlerini kaçışlar ve Excel'in birebir okuması gereken öznitelik boşluklarını korur

Gelişmiş XLSX üyeleri için yardımcı türler

Bu yardım dosyasında belgelenen gelişmiş XLSX üyeleri, lxHandleX

{ Find and replace }
TXLSXFindFlag = (lxfMatchCase, lxfWholeCell, lxfSearchFormulas,
  lxfUseWildcards, lxfBackward, lxfByColumns);
TXLSXFindOptions = set of TXLSXFindFlag;
TXLSXReplaceAction = (raReplace, raSkip, raAbort);
TXLSXReplaceEvent = function(ARow, ACol: Integer;
  const ACurrentText: WideString; var ANewText: WideString):
  TXLSXReplaceAction of object;

{ Progress and recalculation policy }
TXLSXProgressPhase = (xlsxProgressReading, xlsxProgressWriting,
  xlsxProgressCalculating, xlsxProgressExporting);
TXLSXProgressState = (ppsBegin, ppsWork, ppsEnd);
TXLSXRecalcMode = (xrmManual, xrmIfDirty, xrmAlways);
TXLSXPasswordEvent = procedure(Sender: TObject;
  var PassWord: WideString) of object;

{ Custom document properties (docProps/custom.xml) }
TXLSXCustomPropType = (xcptText, xcptNumber, xcptDate, xcptBoolean);
TXLSXCustomProperty = class
  Name: WideString;
  PropType: TXLSXCustomPropType;
{ + TextValue, NumberValue, DateValue, BoolValue accessors }
end;

{ Table styles, fills, sorts, external links, controls, sparklines }
TXLSXTableStyleSectionKind = (xltssWholeTable, xltssHeaderRow,
  xltssTotalRow, xltssFirstColumn, xltssLastColumn, xltssFirstRowStripe,
  xltssSecondRowStripe, xltssFirstColumnStripe, xltssSecondColumnStripe,
  xltssFirstHeaderCell, xltssLastHeaderCell, xltssFirstTotalCell,
  xltssLastTotalCell { + subtotal and subheading slots });
TXLSXFillPattern = (xlsxFillNone, xlsxFillSolid, xlsxFillGray125
  { + the remaining ECMA-376 pattern values });
TXLSXGradientKind = (xlsxGradientNone, xlsxGradientLinear, xlsxGradientPath);
TXLSXSortBy = (xlsxBsValue, xlsxBsCellColor, xlsxBsFontColor, xlsxBsIcon);
TXLSXSortMethod = (xlsxSmNone, xlsxSmStroke, xlsxSmPinYin);
TXLSXExternalLinkKind = (xlsxExternalLinkUnknown, xlsxExternalLinkWorkbook,
  xlsxExternalLinkDde { + the remaining link kinds });
TXLSXFormControlType = (xfcButton, xfcCheckBox, xfcRadioButton, xfcComboBox,
  xfcListBox);
TXLSXSparklineAxisType = (xlsxSparklineAxisIndividual,
  xlsxSparklineAxisGroup, xlsxSparklineAxisCustom);
TXLSXSparklineEmptyCells = (xlsxSparklineEmptyGap, xlsxSparklineEmptyZero,
  xlsxSparklineEmptySpan);

{ Chart authoring and layout }
TXLSXChartBarGrouping = (xlsxBarGroupClustered, xlsxBarGroupStacked,
  xlsxBarGroupPercentStacked);
TXLSXChartMarkerSymbol = (xlsxMarkerAuto, xlsxMarkerCircle, xlsxMarkerDash,
  xlsxMarkerDiamond, xlsxMarkerDot, xlsxMarkerPlus, xlsxMarkerSquare,
  xlsxMarkerStar, xlsxMarkerTriangle, xlsxMarkerX, xlsxMarkerNone);
TXLSXChartDataLabelPos = (xlsxDlblPosDefault, xlsxDlblPosCenter,
  xlsxDlblPosInEnd, xlsxDlblPosOutEnd, xlsxDlblPosBestFit, xlsxDlblPosLeft,
  xlsxDlblPosRight, xlsxDlblPosTop, xlsxDlblPosBottom);
TXLSXChartMutable = class;     { mutable base of the chart model nodes }
TXLSXChartLayoutRect = record
  Left, Top, Right, Bottom: Double;
end;
TXLSXChartResolvedLayout = record
  ChartRect: TXLSXChartLayoutRect;
  TitleRect: TXLSXChartLayoutRect;
  LegendRect: TXLSXChartLayoutRect;
  PlotOuterRect: TXLSXChartLayoutRect;
  PlotInnerRect: TXLSXChartLayoutRect;
  { + per-axis title rectangles and visibility flags }
end;

{ Pagination keep-together blocks }
TXLSXKeepTogetherRange = record
  Row1, Row2: Integer;
  Level: Integer;
  ReplaceBiggerLevels: Boolean;
end;
TXLSXKeepTogetherCols = record
  Col1, Col2: Integer;
  Level: Integer;
  ReplaceBiggerLevels: Boolean;
end;

{ Diagnostics records }
TXLSXValidationIssue = record
  Row, Col: Integer;
  ValidationIndex: Integer;
  Reason: WideString;
end;
TXLSXUnknownFunctionInfo = record
  Sheet: Integer;
  Row, Col: Integer;
  Name: WideString;
  LocationKind: TXLSFormulaSymbolLocationKind;
  DefinedNameIndex: Integer;
  DefinedName: WideString;
end;
TXLSXRowMajorOrder = record
  CellOrder: array of Integer;
  RowStarts: array of Integer;
  MaxRow: Integer;
end;
      
Find and replaceTXLSXWorksheet.FindText / FindTextIn , TXLSXFindOptions kabul eder (büyük/küçük harf eşleşmesi, tüm hücre, formül arama, joker karakterler, geriye doğru, sütun bazında); ReplaceText , eşleşme başına TXLSXReplaceEvent , raReplaceya da raSkipseçen ve hücre başına değişiklik için yazılabilir bir raAbort sunan bir ANewText alır
Progress and savingTXLSXWorkbook.OnProgress / OnProgressEx , TXLSXProgressPhase ve (genişletilmiş biçimde) TXLSXProgressState bayraklı Abort iletir; RecalcBeforeSave , serileştirmeden önce elle, yalnızca kirli ya da her durumda yeniden hesaplama seçen bir TXLSXRecalcMode değeridir; OnPassword , açma ve yazma parolalarını sağlayan bir TXLSXPasswordEvent 'dir
Custom propertiesTXLSXWorkbook.CustomProperties ; türlü TXLSXCustomProperties / AddText / AddNumber / AddDate oluşturucuları, AddBoolean , FindByNameve Deleteile Clearve Count numaralandırması sunan bir Items koleksiyonudur; her TXLSXCustomProperty , değerini ECMA-376 varyant eşlemesine uyan bir TXLSXCustomPropType ile etiketler
Style overlaysTXLSXStyleOverlays , saklanan stillerin üzerinde aralık başına geçersiz kılmaları yönetir: Add bir tane oluşturur, ApplyToCell tek bir hücreyi yeniden stiller; Resolve, ResolveRowDefaultve ResolveColumnDefault yükleme sırasında stil sorgularını yanıtlar, HasVirtualStyle üretilmiş stilleri bildirir, MaxVirtualRow sanal satırları sınırlar, ApplyStructuralEdit satır ya da sütun düzenlemelerinden sonra katmanları kaydırır; Clear, Countve Items koleksiyonu yönetir
Styles, fills, and overlaysTXLSXFill , Pattern, GradientKindve GradientStops öğelerini TXLSXFillPattern, TXLSXGradientKindve TXLSXGradientStopüzerinden açığa çıkarır; TXLSXWorksheet.StyleOverlays , girdileri bir dikdörtgen, etkilenen biçim parçaları ve geçersiz kılan hücre stili taşıyan TXLSXStyleOverlays girdileri içeren bir TXLSXStyleOverlay koleksiyonudur
Tables, sorts, and linksÖzel tablo stilleri (TXLSXWorkbook.CustomTableStyles), bölüm biçimlendirmesini TXLSXTableStyleSectionKind yuvalarından kurar: koleksiyon Add, FindByName, Delete, Clear, Countve Itemssunar; her TXLSXCustomTableStyle ise Name, SectionSize, PivotStyleve TableStyleFlag açığa çıkarır ve HasSection / ResolveSection sorgularını yanıtlar; sıralama koşulları anahtarları TXLSXSortBy ile, metin sıralamasını TXLSXSortMethodile sınıflandırır; TXLSXExternalLink.Kind bir TXLSXExternalLinkKind değeridir ve her bağlantı, TXLSXExternalDefinedName ve Name taşıyan RefersTo
Custom XML partsTXLSXWorkbook.CustomXmlParts , öğeye özel XML'i korur: Add, Deleteve Clear parçaları yönetir; her TXLSXCustomXmlPart yükünü Xml içinde taşır ve şema ilişkilerinden oluşan bir ItemId ile SchemaRefs dize listesi bulundurur (AddSchemaRef ekler); korunan parçalar kaydetmede dokunulmadan round-trip yapar
Cell style payloadsTXLSXCellStylePayload , tek tek hücrelere eklenen paylaştırılabilir, değişmez bir stil demetidir: Acquire / Release başvuru sayacını yönetir, Clone kopyalar, IsDefault varsayılan stili sınar ve InternKey eşit yükleri tanımlayarak depolamanın bunları tekilleştirmesini sağlar
Controls, drawings, and sparklinesTXLSXWorksheet.FormControls , TXLSXFormControls nesnelerinden oluşan bir TXLSXFormControl koleksiyonudur — her biri ControlType, Caption, MacroName, LinkedCellve Items listesini açığa çıkarır — TXLSXFormControlTypeile türlenir ve TXLSXFormControlItems , denetim başına öğe metnini tutar; çizim nesneleri türünü TXLSDrawingObjectKindile bildirirken sparkline grupları, eksen ölçeklemesini ve boş hücre davranışını TXLSXSparklineAxisType ve TXLSXSparklineEmptyCells
ChartsÇizim grupları ve seriler; çubuk gruplamasını, işaretçi simgelerini ve veri etiketi konumlarını TXLSXChartBarGrouping, TXLSXChartMarkerSymbolve TXLSXChartDataLabelPos enum'larıyla sınıflandırır; grafik modeli düğümleri TXLSXChartMutable taban sınıfını paylaşır ve TXLSXChartLayoutResolver.ResolveChart , grafik, başlık, gösterge, çizim ve eksen başlıkları için TXLSXChartResolvedLayout dikdörtgenlerinden oluşan bir TXLSXChartLayoutRect doldurur
Pagination keep blocksKeepRowsTogether / KeepColumnsTogether , sayfa sonu planlamasının bir bloğu tek sayfada tutması için TXLSXKeepTogetherRange ve TXLSXKeepTogetherCols kayıtlarını yönetir
DiagnosticsTXLSXWorksheet.CheckDataValidations returns TXLSXValidationIssue kayıtları döndürür (hücre, doğrulama indeksi, neden); TXLSXWorkbook.ScanUnknownFunctions , hücrelerdeki ve tanımlı adlardaki uygulanmamış çağrıları konumlandıran TXLSXUnknownFunctionInfo kayıtları döndürür; TXLSXCells.GetStorageStatistics , hücre, satır bloğu, yük başına bayt ve stilli-boş muhasebesiyle bir TXLSXCellStorageStatistics kaydını doldurur; TXLSXWorksheet.BuildRowMajorCellOrder , dolu hücrelerin bellek içi gezinme sırasını tanımlayan bir TXLSXRowMajorOrder döndürür
TXLSXWorkbook.FormulaLocale , formülleri ayrıştırırken ve serileştirirken kullanılan yerel ayar etiketini okur ya da yazar; klasik çalışma kitabının formül yerel ayarı davranışını yansıtır

Tablo slicer'ları

Tablo slicer'ları (Excel 2013+), iki koleksiyon üzerinden yazılır ve incelenir: TXLSXWorksheet.Slicers sayfa başına slicer görünümlerini (TXLSXSlicer), TXLSXWorkbook.SlicerCaches ise paylaşılan veri kaynaklarını (TXLSXSlicerCache) tutar

property TXLSXWorksheet.Slicers: TXLSXSlicers;
property TXLSXWorkbook.SlicerCaches: TXLSXSlicerCaches;

{ TXLSXSlicers }
function Add(ATable: TXLSXTable; const AColumnName: WideString): TXLSXSlicer; overload;
function Add(ATable: TXLSXTable; const AColumnName: WideString;
  ARow1, ACol1, ARow2, ACol2: Integer): TXLSXSlicer; overload;
function IndexByName(const AName: WideString): Integer;
function FindByName(const AName: WideString): TXLSXSlicer;
procedure Delete(Index: Integer);
procedure Clear;
property Count: Integer;
property Items[Index: Integer]: TXLSXSlicer;

{ TXLSXSlicer view }
property Name: WideString;          { workbook-unique }
property CacheName: WideString;
property Cache: TXLSXSlicerCache;
property Caption: WideString;
property StartItem: Integer;
property ColumnCount: Integer;
property ColumnWidth: WideString;
property ShowCaption: Integer;
property StyleName: WideString;
property LockedPosition: Integer;
property RowHeight: WideString;
property RowHeightEmu: Integer;
procedure SetBounds(ARow1, ACol1, ARow2, ACol2: Integer);
property FromRow, FromCol, ToRow, ToCol: Integer;   { anchor cell corners }
property FromRowOff, FromColOff, ToRowOff, ToColOff: Integer; { EMU offsets }
property AnchorType: TXLSXAnchorEditAs;
property HasAnchor: Boolean;

{ TXLSXSlicers, load-path entry }
function AddInternal: TXLSXSlicer;

{ TXLSXSlicerCache }
property Name: WideString;          { e.g. Slicer_Region }
property SourceName: WideString;    { source table column / pivot field }
property IsTableCache: Boolean;
property IsPivot: Boolean;
property IsNonOlapPivot: Boolean;
property ItemCount: Integer;
property ItemCacheIndex[Index: Integer]: Integer;
property ItemSelected[Index: Integer]: Boolean;
function SetSelectedItems(const CacheItemIndices: array of Integer): Integer;
function ClearSelection: Integer;
property TableId: Integer;
property TableColumnId: Integer;
property SortOrder: WideString;     { '' | ascending | descending }
property CrossFilter: WideString;   { '' | none | showItemsWithDataAtTop | showItemsWithNoData }
property CustomListSort: Integer;   { -1 absent, else 0/1 }

{ TXLSXSlicerCaches }
function Add: TXLSXSlicerCache;
function FindByName(const AName: WideString): TXLSXSlicerCache;
function IndexOfName(const AName: WideString): Integer;
function FindForTableColumn(ATableId, ATableColumnId: Integer): TXLSXSlicerCache;
procedure Delete(Index: Integer);
procedure Clear;
property Count: Integer;
property Items[Index: Integer]: TXLSXSlicerCache;
      

Slicers.Add(Table, ColumnName) bir slicer'ı uçtan uca kurar: Slicer_<column>adlı arka önbelleği kaydeder ya da yeniden kullanır, eşleşen #N/A tanımlı adını ayırır, çalışma sayfasının slicerList uzantısını yazar ve görünümlü fallback bildirisi eski Excel sürümlerini kapsayan bir markup-compatibility çizim çıtasıyla görünümu çıtalar; ikinci aşırı yükleme görünüm dikdörtgenini sabitler, aksi hâlde tablonun sağındaki varsayılan çıta kullanılır

Yüklenen görünümler ve önbellekler açılışta geri ayrıştırılır, paylaşılan önbellekler görünümler arasında yeniden kullanılır ve bir önbelleğin son görünümünün silinmesi önbelleği düşürür; tanınmayan öznitelikler ve uzantılar özgün gösterimlerini korurken tablo bağları kaydedilen tablo kimliklerini ve desteklenen Pivot bağlantıları kaydedilen sayfa kimliklerini izler

Desteklenen içe aktarılmış OLAP-olmayan Pivot önbellekleri, IsNonOlapPivot, ItemCount, ItemCacheIndex, ItemSelected, SetSelectedItems ve ClearSelection üzerinden türlü üye incelemesi ve korumalı seçim değişiklikleri gösterir; paylaşılan görünüm davranışı, hata atomikliği ve içe aktarılan aynı-alan maskesi sınırı için Pivot Slicer seçimi konusuna bakın

Desteklenmeyen Pivot önbellekleri özgün baytlarını korur; dosyadan yüklenen bir Slicer görünümüne ayrıca TXLSXDrawingObject.Slicer üzerinden çizim nesnesi olarak ulaşılabilir

Örnek

var
  Ref: WideString;
  Row, Col: Integer;
begin
  Ref := XlsxCellRef(10, 5);
  if XlsxParseCellRef(Ref, Row, Col) then
    Worksheet.Cells.Item[Row, Col].Value := 'Checked';
end;
    

G/Ç callback'leri, serileştirici stil havuzları, şifreli dosya doğrulaması ve çalışma alanı bağımlılık grafı sözleşmeleri için çalışma kitabı altyapı API'si konusuna bakın