HotXLS Belgeleri

XLSB formülleri ve çalışma sayfası nesneleri

XLSX çalışma kitabı cephesi; türlü değerler, sıradan önbelleğe alınmış formüller, adlar, yaygın stiller ve gösterilen çalışma sayfası nesneleriyle doğrulanmış bir XLSB alt kümesini okur ve yazar; gösterilemeyen durum hedef çıktısından önce reddedilir

Açma ve kaydetme

if Workbook.Open('values.xlsb') <> 1 then
  raise Exception.Create('XLSB input is unsupported or invalid');
if Workbook.SaveAsChecked('values-copy.xlsb', xlsxExcelBinaryWorkbook) <> 1 then
  raise Exception.Create('XLSB output is unsupported or failed');

Open, çalışma kitabı parçasının içerik ve kayıtlı türünü algılar; başarılı ikili girdi SourceFormat=xlsxExcelBinaryWorkbook atar; özgün dört TXLSXFileFormat sıra numarası değişmeden kalır ve yeni üye 4 sıra numarasını alır

Dosya ve akış SaveAs ile SaveAsChecked aşırı yüklemeleri ikili biçimi açıkça kabul eder; varsayılan kaydetme, dosya adı uzantısından bağımsız olarak yine sıradan Open XML çalışma kitabı biçimini seçer

GetConversionReport(xlsConversionExcelBinaryWorkbook), paketlenmiş hücre depolamasını genişletmeden güncel durumu inceler; desteklenmeyen girdiler, denetimsiz kaydetme ya da AllowLossy=True için bile zorunlu başarısızlık olarak kalır

Desteklenen durum

Dönüşüm raporu canlı model özelliklerini kapsar; eksiksiz paket doğrulaması, geçersiz atıflar, bozuk kayıtlar, tanıdık olmayan öznitelikler ya da desteklenmeyen saklanan içerik için son kapı olarak kalır

İkili içe aktarma, biçimlendirilmiş boş hücreler dahil dosyanın açık varsayılan yazı tipini ve desteklenen gömülü sayı biçimlerini korur; yerel ayara bağlı sayı biçimleri, okuyucunun bölgesel biçimlendirme tahmin etmemesi için açık bir biçim kodu ister

Açık sınırlar

Paylaşılan formül kayıtları, dizi ve dinamik dizi sahipliği, dizi sabitleri ve dizi döndüren işlevler, gelecek işlevler, kullanıcı tanımlı işlevler, dış çalışma kitabı ve çok sayfalı başvurular, VBA, dış veri bağlantıları, PivotTable'lar ve Slicer'lar, grafikler ve çizimler, yorumlar ve zengin metin, doğrulama, koşullu biçimlendirme ve gelişmiş sayfa ya da uzantı üst verisi bu arka ucun dışında kalır

Tablo hesaplanan sütunları, toplam toplama formülleri, sıralama durumu, fark ya da özel tablo biçimlendirmesi, sorguya bağlı tablolar ve XML eşlemeleri reddedilir; renk, simge, dinamik ve tarih grubu filtreleri, türlü yerel Boolean özel ölçütleri, sayı gibi görünen yerel dize özel ölçütleri ve filtre düğmesi görünürlüğü geçersiz kılmaları da reddedilir

Alınmış özel olmayan çalışma sayfası filtre ölçütleri RawXml olarak tutulur; özel karşılaştırmalar mevcut türlü ölçüt özelliklerini doldurur, seçili değerler ve boş seçim ise yeni bir türlü değer listesi API'si yerine XML destekli bir ölçüt olarak kalır

Formül simgesi dönüşümü semantiği ve başvuru bayraklarını korur; formül metnini parantezlerle ve tırnaklı sayfa adlarıyla normalleştirebilir, bu yüzden bayt bayt metin kimliği vaat edilmez

Formül çıktısı açık bir sayısal, dize, Boolean ya da sıradan hata önbelleği ister; kaydetme ilkesi yeniden hesaplamayacaksa eksik önbellek reddedilir; buna xrmManual ve xrmIfDirty ile temiz bir bağımlılık grafiği dahildir; uygulamalar kaydetmeden önce Recalculate çağırabilir ya da xrmAlways seçebilir; boş dize, False ve sayısal sıfır geçerli önbelleklerdir

Hesaplama özellikleri desteklenen varsayılanları kullanmalıdır; elle hesaplama, yineleme, düşürülmüş hassasiyet, alternatif başvuru modu, zorlanmış ya da eksik hesaplama, açık iş parçacığı yapılandırması ve diğer anlamlı varsayılan dışı ayarlar reddedilir

Hesaplama zincirleri ve ikili hücre indeksleri yeniden üretilen üst veridir ve paket köprüsü boyunca kopyalanmaz; tanıdık olmayan özellik kayıtları ya da ilişkileri, uydurma Open XML parçalarına dönüşmek yerine başarısızlık olarak kalır

İkili girdi istekli tam sayfa yükleme ister; MetadataOnly ve boş olmayan bir SelectedSheets listesi, mevcut modeli değiştirmeden önce reddedilir, çünkü tembel yükleme saklanan dönüştürülmüş bir arşiv gerektirir

Başarısızlık ve sahiplik güvenceleri

İkili paketler, sıradan XML ayrıştırıcısı çalışma kitabını sıfırlamadan önce doğrulanır ve dönüştürülür; desteklenmeyen girdi, bozuk ikili içerik, reddedilen okuma modları ve dönüşüm iptali mevcut çalışma sayfası nesnelerini, dosya adını, kaynak biçimini ve kaynak arşiv bağını korur

Doğrulanmış ikili dönüşüm mevcut XML ayrıştırıcısına girdikten sonra, geç XML ayrıştırma ya da uygulama geri çağırısı başarısızlıkları sıradan XML açma yaşam döngüsünü izler; ön denetim güvencesi keyfi geri çağırı yazmalarının geri alınmasını vaat etmez

Kaydetme ikili paketin tamamını hazırlar; dosya çıktısı kardeş bir geçici dosya ve tek bir son değişim kullanır, okunabilir konumlandırılabilir akış çıktısı ise işleme başarısızlığı sonrası geri alma için bayt, boyut ve konum anlık görüntüsü tutar

LastSaveUsedStreaming=False, ara XML yazıcısı akış yapsa bile eksiksiz ikili hazırlığı yansıtır; bellek dönüştürülmüş parçaları ve paketin tamamını içerir, bu yüzden bu arka uç sınırlı bellekli bir akış yazıcısı değildir

Dönüşüm raporları ve ön denetim, paketlenmiş değerler ile somutlaştırılmış formüllerin karışımı dahil paketlenmiş hücre depolamasını korur; başarılı kaydetme, paketlenmiş değerleri mevcut stil hazırlığı ve çalışma sayfası yazıcısı üzerinden genişletebilir, böylece rapor saflığı değişmez ya da somutlaştırmayan bir kaydetme işlemi anlamına gelmez

Başarılı ikili dosya kaydetme önceki ham XML kaynak bağlarını temizler; akış kaydetme dosya adı davranışını korur ve iptal, hedef işleme alınmadan önce denetlenir

Paket dönüşüm API'leri

procedure XlsbToOpenXml(Source: TZipArchive; Destination: TStream;
  CancelCheck: TXLSStreamCancelCheck = nil;
  EntryCompressionLevel: Integer = -1; EntryFixedDate: TDateTime = 0);
procedure OpenXmlToXlsb(Source: TZipArchive; Destination: TStream;
  CancelCheck: TXLSStreamCancelCheck = nil;
  EntryCompressionLevel: Integer = -1; EntryFixedDate: TDateTime = 0);
function XlsbStylesToXml(const Data: AnsiString): AnsiString;
function XlsbStylesFromXml(const Data: AnsiString): AnsiString;
function XlsbStringsToXml(const Data: AnsiString): AnsiString;
function XlsbStringsFromXml(const Data: AnsiString): AnsiString;

TXlsbFormulaValidator.Create(WorkbookXml) çalışma kitabı ad bağlamını doğrular ve Validate(FormulaText, SheetIndex) çalışma sayfası hücre erişimi olmadan bir formülü doğrular; SheetIndex sıfır tabanlıdır ve doğrulayıcının sahibi çağırandır

XlsbValidateTableXml(Data) ve XlsbValidateAutoFilterXml(Data), UTF-8 nesne XML'ini paket çıktısının kullandığı aynı kodlayıcı sözleşmelerine karşı doğrular; başarısızlıklar mevcut biçim ya da desteklenmeyen özellik istisnalarını fırlatır

Bu lxXlsb API'leri çağıranın sahipliğini korur; paket dönüşümü tüm parçaları doğrular ve hazırlar, sonra Destination'ı sıfır ofsetinden değiştirir; çekirdek parça köprüleri UTF-8 XML ve ham ikili baytlar kullanır

EXlsbUnsupported, EXlsbFormatError'dan türemiştir ve beklenen alt küme reddini bozuk veriden ayırır; iptal, işleme alınmadan önce yerleşik akış iptal istisnasını fırlatır

Sıkıştırma -1 ile 9 arasında değer kabul eder ve sabit tarih, sıfır ya da 1980-2107 arasından sonlu bir DOS gösterilebilir tarih kabul eder; geçersiz seçenekler hedef değişmeden reddedilir