HotXLS Belgeleri

Doğrudan okuyucu ve yazıcı API'si

TXLSDirectReader ve TXLSDirectWriter , eksiksiz bir çalışma sayfası ızgarasını bellekte tutmadan XLSX paketlerini işler; bu nedenle bir sayfayı tanımlayan API çağrıları, karşılık gelen akış aşamasından önce veya sırasında yapılmalıdır

Yazıcı yaşam döngüsü ve hücre değerleri

TXLSDirectWriter.BeginFile veya BeginStream bir paket başlatır, sayfa yöntemleri her seferinde bir çalışma sayfası tanımlar ve Finish son paketi kaydeder

Scalar cellsWriteString, WriteRichString, WriteNumber, WriteBoolean, WriteDateTimeve WriteError
Formula cellsWriteFormula, WriteFormulaNumber, WriteFormulaString, WriteFormulaBoolean, WriteFormulaDateTimeve WriteFormulaError , çağıranın sağladığı önbelleğe alınmış sonuçları kabul eder
Shared stringsUseSharedStrings , paket düzeyinde dize yinelenmesini gidermeyi etkinleştirir
StatisticsCellCount , yayılan hücre sayısını bildirir
PanesFreezePanes(ColSplit, RowSplit) , verilen bire dayalı sütun ve satırda donmuş bir bölme yazar

Satırlar ve sütunlar, genel yazıcı yüzeyinde bire dayalıdır ve ileri çalışma sayfası sırasıyla sağlanmalıdır

Çalışma sayfası yama yaşam döngüsü

BeginPatch , dokunulmamış paket parçalarını korurken bir çalışma sayfasının yerini alır veya yeni bir çalışma sayfası ekler. Başarısız başlatma, kaynak arşivini ve kaynak akışını hemen serbest bırakır; buna eksik çalışma sayfası, eksik zorunlu paket parçası, geçersiz arşiv veya hedef oluşturma hatası da dahildir. Kaynak dosyalar ve çağırana ait geçici kayıtlar çağıranın sorumluluğunda kalır; serbest bırakılan tanıtıcılar bu kaynakların kaldırılmasına veya serbest bırakılmasına imkan tanır

Close ve yok etme, etkin bir hedef yokken ya da yama sonlandırması bir istisna fırlatırken bile kaynak tanıtıcılarını serbest bırakır. Başarısız bir hedef değişimi, sahnelenmiş çıktısını inceleme için saklar; yazıcı ise başlatma hatasından sonra sonraki bir yamaya veya sıradan bir dosya işlemine başlayabilir

Yeniden kullanılabilir stiller

AddCellStyle , değişmez bir paket düzeyinde stil tanıtıcısı kaydeder ve CloneCellStyle , çalışma sayfası satırlarını tutmadan yeni bir tanıtıcı türetir

Tanımlı adlar ve köprüler

AddDefinedName, AddLocalDefinedName, AddDefinedRangeve AddLocalDefinedRange , paket sonlandırmadan önce çalışma kitabı veya sayfa yerel adları ekler

AddHyperlink, AddHyperlinkRange, AddInternalHyperlinkve AddInternalHyperlinkRange , bir hücre veya aralık için dış ilişkiler veya iç sayfa konumları yayar

Veri doğrulama

AddDataValidation ve AddDataValidationSqRef , eksiksiz kural yüzeyini açığa çıkarırken AddListValidation, AddWholeNumberValidation, AddDecimalValidation, AddDateValidation, AddTimeValidation, AddTextLengthValidationve AddCustomValidation türlenmiş yardımcılar sağlar

Koşullu biçimlendirme

AddConditionalFormat, AddConditionalFormatExpression, AddConditionalFormatContainsText, AddConditionalFormatNotContainsText, AddConditionalFormatBeginsWith, AddConditionalFormatEndsWith, AddConditionalFormatTop10, AddConditionalFormatAboveAverage, AddConditionalFormatDuplicateValues, AddConditionalFormatUniqueValues, AddConditionalFormatContainsBlanks, AddConditionalFormatNotContainsBlanks, AddConditionalFormatContainsErrorsve AddConditionalFormatNotContainsErrors skaler kurallar ekler

AddConditionalFormatDataBar, AddConditionalFormatColorScale2, AddConditionalFormatColorScale3ve AddConditionalFormatIconSet görsel kurallar ekler; ClearConditionalFormats , geçerli sayfa için bekleyen kuralları kaldırır

Otomatik Filtre ve tablolar

AddAutoFilterValue, AddAutoFilterDateGroupve AddAutoFilterSortCondition , çalışma sayfası filtresini yapılandırır

AddTable bir tablo parçası oluşturur ve AddTableFilterValue, AddTableFilterDateGroupile AddTableSortCondition onun filtre ve sıralama durumunu yapılandırır

Koruma ve sayfa sonları

ProtectSheet, UnprotectSheet, AddProtectedRangeve ClearProtectedRanges çalışma sayfası korumasını yapılandırır; ProtectWorkbook ve UnprotectWorkbook çalışma kitabı yapısını ve pencere kilitlerini yapılandırır

AddHorizontalPageBreak ve AddVerticalPageBreak , geçerli çalışma sayfası için el ile sayfa sonları yayar

Doğrudan okuyucu depolama tanılaması

TXLSDirectReader.SharedStringMemoryLimit , çözümlenen paylaşılan dize belleğini sınırlar, SharedStringsOnDisk geçici dizinli depolamaya geçişi bildirir, SharedStringCount yüklenen girdi sayısını bildirir ve ParallelDiag sınırlı paralel ayrıştırıcı tanılamasını açığa çıkarır

Okuyucu yansıtması ve formül durumu

FirstRow, LastRow, IncludeColumnve ClearColumnProjection ; satır ve bire dayalı sütun seçimini, değer, formül ya da zengin metin ayırmalarından önce çalışma sayfası ayrıştırıcısının içine iter

IncludeFormulaText varsayılan olarak true'dur; devre dışı bırakıldığında önbelleğe alınmış değerler, koordinatlar, stiller ve HasFormula korunurken FormulaTextAvailable false olur ve Formula boş kalır

Satır imleci

TXLSRowCursor.Open ; XLS, XLSX, XLSM, ODS, CSV ve TSV dosya ya da akışlarını kabul eder; ZIP otomatik algılama, bir sayfa açılmadan önce ODS paketlerini Open XML çalışma kitaplarından ayırır

SelectSheet ve SelectSheetByName bir çalışma sayfası seçer; SheetCount, SheetNames, SheetIndex, RowIndexve Eof gezinme durumunu açığa çıkarırken SharedStringMemoryLimit , doğrudan okuyucuyla aynı sınırlı paylaşılan dize ilkesini uygular

FirstRow, LastRow, IncludeColumnve ClearColumnProjection , aynı bire dayalı filtreleri tüm imleç biçimlerinde kullanır; geçilen seçenekler FindFirst ile EOF arasında değiştirilemez ama EOF'tan, sayfa seçiminden ya da kapanıştan sonra yeniden değiştirilebilir hale gelir

Her TXLSRowCursorCell , HasFormula bilgisini FormulaTextAvailabledeğerinden bağımsız bildirir; klasik XLS, kullanılamayan belirteç metni iddiasında bulunmadan formül varlığını ve önbelleğe alınmış sonuçları açığa çıkarırken IncludeFormulaText , birikimden önce XLSX ve ODS formül metnini bastırabilir

ODS gezinmesi tek bir fiziksel satır şablonu tutar, tekrarlanan satır bloklarını istenen aralığa kırpar, tekrarlanan kapsam içinde seçili sütunlar arasında doğrudan atlar, kapsanan hücrelerin üzerinden değer döndürmeden geçer ve geçersiz ya da ızgara sınırlı tekrar sayılarını OnSkippedRecord

State ; xrcsClosed, xrcsBeforeFirst, xrcsActive, xrcsEof, xrcsCancelledve xrcsFaulteddurumlarını ayırt eder; Cancel idempotenttir, geçerli satırı geçersiz kılar ve kaynağı korurken etkin çalışma sayfası akışını serbest bırakır, böylece açık bir sayfa seçimi yeni bir tur başlatabilir

Akış aşırı yüklemesi varsayılan olarak xsoBorrowedkullanır, kapanışta çağıranın ilk konumunu geri yükler ve başarılı bir açılıştan sonra mülkiyeti devretmek için xsoOwned kabul eder; başarısız açılışlar çağıranın mülkiyetini asla tüketmez

CurrentRowView , geçerli satır dizisini kopyalamadan ödünç alır ve her erişimden önce bir nesil (generation) denetler; imlecin ilerlemesi, seçim yapması, iptal etmesi, kapanması ya da yok edilmesi görünümü geçersiz kılar ve sonraki erişimlerde EXLSRowCursorViewInvalidated oluşturur

PeakRowBufferedBytes , en son Open çağrısından bu yana tek bir mantıksal satır için tutulan hücre kayıtlarının, yönetilen yüklerin, zengin metnin ve biçim arka ucu verisinin monotonik bir tahminidir; bu değer tam yığın muhasebesi için değil, sınırlı bellek regresyon tanılaması için tasarlanmıştır

SheetPassesStarted başarılı çalışma sayfası arka uç başlatmalarını sayar; sayfa adlarına bakmak ya da callback cephesi üzerinden bir sayfayı atlamak, çalışma sayfası parçasını açmaz

İleri yönlü geri çağrı bağdaştırıcısı

TXLSForwardReader ; XLS, XLSX, ODS, CSV ve TSV çözümlemesini TXLSRowCursor'a devreder, geçerli satırın her hücresini bir OnCell geri çağrısına dönüştürür ve aynı satır sınırları, sütun yansıtması, formül durumu, zengin metin, parola, atlanan kayıt, akış konumu ve sınırlı arabellek sözleşmelerini korur

PeakRowBufferedBytes ve SheetPassesStarted , paylaşılan imleç tanılamasını geri çağrı yüzeyinde açığa çıkarır; klasik XLS bunlara ek olarak ClassicBytesRead ve ClassicPeakBufferedBytes

Okuyucu olayları ve kayıt türleri

Okuyucu ve satır imleci, tümü lxDirectReadbiriminde bildirilen isteğe bağlı geri çağrılar ve düz kayıtlar açığa çıkarır. Her geri çağrı aynı şekli izler: kayıt, tek bir akış öğesini tanımlar ve Abort değerinin ayarlanması taramayı durdurur (sayfa olayları ek olarak SkipSheetkabul eder)

CellsOnCell ( TXLSDirectCellEventtürü), hücre başına bir TXLSDirectCell teslim eder; Kind alanı (TXLSDirectCellKind: xdkEmpty, xdkNumber, xdkString, xdkBoolean, xdkDate, xdkError) dolu değer alanını seçer; zengin metin, TXLSDirectRichText girdileri taşıyan bir TXLSDirectRichTextRun olarak yol alır; her girdi bir TXLSDirectRichColor (tür TXLSDirectRichColorKind), TXLSDirectRichUnderlineve TXLSDirectRichVertAlignile birlikte isteğe bağlı TXLSDirectPhoneticProperties ve TXLSDirectPhoneticRun verisi içerir
Sheet framingOnSheet (TXLSDirectSheetEvent), hücreleri ayrıştırılmadan önce tüm bir çalışma sayfasını atlayabilir; OnSkippedRecord (TXLSDirectSkippedEvent), hatalı ya da kesilmiş içeriği kayıt kimliği ve nedenle birlikte bildirir
Sheet layoutOnDimension, OnSheetFormat, OnColumn, OnRow, OnMergeve OnPane ; TXLSDirectDimension, TXLSDirectSheetFormat, TXLSDirectColumn, TXLSDirectRow, TXLSDirectMergeve TXLSDirectPane kayıtlarını teslim eder; bölme durumu TXLSDirectPaneState kullanır (xdpsSplit, xdpsFrozen, xdpsFrozenSplit, xdpsUnknown)
Cursor stateTXLSRowCursor.State bir TXLSRowCursorState değeridir (xrcsClosed, xrcsBeforeFirst, xrcsActive, xrcsEof, xrcsCancelled, xrcsFaulted); Open akış aşırı yüklemesi bir TXLSStreamOwnership alır (xsoBorrowed varsayılan, mülkiyeti devretmek için xsoOwned ); CurrentRowView , IXLSRowCursorView özelliği erişimi koruyan ve Valid ödünç alınan satırın tek bir hücresini kopyalamadan okuyan ödünç bir ValueByCol görünümü döndürür; imleç ilerlediğinde görünüm geçersizleşir

Yazıcı parametre ve stil türleri

Yazıcının türlü yardımcıları (lxDirectWrite), çağrıların ayırma yapmaması için kayıtlar ve enum'lar kabul eder: WriteRichString bir TXLSDirectRichTextalır; AddCellStyle , hizalama ( TXLSDirectCellStyle ,TXLSDirectHorizontalAlignment), altı çizgi ( TXLSDirectVerticalAlignment), dolgu deseni (TXLSDirectUnderline) ve kenarlık kenarları (TXLSDirectFillPatternileTXLSDirectStyleBorder ) OOXML stil modelini yansıtan bir TXLSDirectBorderSideüzerinden paket düzeyinde bir stil oluşturur. Koşullu biçimlendirmeler TXLSDirectConditionalFormat / TXLSDirectCfKind / TXLSDirectCfOperator / TXLSDirectCfValue ve TXLSDirectCfValueKind ile bir TXLSDirectIconSetTypegeçirir; veri doğrulama bir TXLSDirectDataValidation, tablolar bir TXLSDirectTable, köprüler bir TXLSDirectHyperlink, tanımlı adlar bir TXLSDirectDefinedName, fark stilleri bir TXLSDirectDxfStyle, yorumlar bir TXLSDirectComment, görüntüler TXLSDirectImage ile bir TXLSDirectImageFormat, grafikler TXLSDirectChart ve TXLSDirectChartSeries ile bir TXLSDirectChartType, birleştirmeler bir TXLSDirectMergeRange, korumalı aralıklar bir TXLSDirectProtectedRange, sayfa koruması bir TXLSDirectSheetProtectionOptions kümesi olan TXLSDirectSheetProtectionOption, Otomatik Filtre sıralama durumu bir TXLSDirectSortState, sütun seçenekleri bir TXLSDirectColumnOptionve sayfa geometrisi bir TXLSDirectPageMargins kaydı kullanır

TXLSDirectNeedRow = procedure(Sender: TObject; RowIndex: Integer;
  var Eof: Boolean) of object;

function XLSDirectColName(Col: Integer): WideString;
function XLSDirectParseRef(const Ref: WideString;
  out Col, Row: Integer): Boolean;
function XLSDirectPasswordHash(const Password: WideString): WideString;
      

OnNeedRow satırları uygulamadan çeker: sağlayıcı, satırın hücrelerini doğrudan yazıcı üzerinden yazar ve Eof = Falsebırakır ya da döngüyü durdurmak için Eof = True ile tükendiğini bildirir. Yardımcılar koordinatlar ve koruma ilkeleri arasında dönüştürme yapar: XLSDirectColName sıfır tabanlı bir sütunu A1 harfleriyle gösterir, XLSDirectParseRef bir A1 hücre başvurusunu ayrıştırır ve XLSDirectPasswordHash , sayfa koruma kayıtlarının sakladığı eski parola özetini hesaplar

Ayrıca bkz.