HotXLS Docs

Genel Bakış

HotXLS Logo
HotXLS Excel Read/Write Library, Delphi ve C++Builder için yüksek performanslı bir Excel okuma-yazma bileşenidir Makinede Microsoft Excel veya Office'in kurulu olmasına gerek kalmadan yeni Excel elektronik tabloları oluşturabilir ve mevcut XLS ve XLSX çalışma kitaplarını okuyabilir veya değiştirebilir
HotXLS tamamen Object Pascal ile yazılmıştır. Excel dosyalarını doğrudan ikili (binary) ve OOXML düzeyinde okur ve yazar, bu nedenle COM/OLE otomasyon yükü yoktur ve Office'in lisanslı veya mevcut olmasına bağımlılık yoktur HotXLS, XE5'ten 13 Florence'a kadar Delphi ve C++Builder'ı destekler
Klasik XLS renk biçimlendirmesi bilinçli olarak palet tabanlı kalır. ThemeColor / TintAndShade kararı için Klasik XLS renk modeli sayfasına bakın

Çift Cepheli Mimari (Dual-Facade Architecture)

HotXLS, eski XLS kodunun ve yeni XLSX kodunun herhangi bir yeniden düzenleme (refactoring) gerektirmeden yan yana yaşayabilmesi için bir arada var olan iki cephe ünitesi (facade unit) sunar:
lxHandle Excel 97–2003 BIFF8 formatı (.xls) için birincil cephe, artı HTML, RTF, CSV ve TSV dışa aktarımı. Mevcut tüm kullanıcı kodları bu üniteyi değiştirmeden kullanmaya devam eder. Giriş noktaları: TXLSWorkbook, TXLSWorksheet, IXLSWorkbook, IXLSRange
lxHandleX Excel 2007+ OOXML formatı (.xlsx) ve OpenDocument Spreadsheet (.ods) okuma/yazma işlemleri için birincil cephe. Kendi çalışma kitabı ve çalışma sayfası türlerini sağlar, böylece XLSX'e özgü davranış BIFF kod yoluna sonradan eklenmez. Giriş noktaları: TXLSXWorkbook, TXLSXWorksheet, TXLSXCell
Her iki cephe de aynı formül motorunu, aynı Unicode destek katmanını ve aynı dışa aktarım ardışık düzenini (pipeline) paylaşır lxHandleX tarafından sunulan tam sınıf hiyerarşisi için XLSX Facade Overview sayfasına bakın

Hızlı Başlangıç

Aşağıdaki parçacıklar, bir çalışma sayfasına sahip bir çalışma kitabı oluşturmak ve bir hücreye değer yazmak için minimum kodu gösterir.

Classic XLS (lxHandle)

uses lxHandle;

var
  Book: IXLSWorkbook;
  ws:   TXLSWorksheet;
begin
  Book := TXLSWorkbook.Create;
  // Bir çalışma sayfası ekleyin ve ona bir ad verin
  ws := Book.Sheets.Add;
  ws.Name := 'Sheet1';

  // A1 notasyonunu kullanarak hücrelere değerler yazın
  ws.Range['A1'].Value := 'Hello';
  ws.Range['B1'].Value := 42;
  ws.Range['C1'].Formula := '=B1*2';

  // Temel biçimlendirmeyi uygulayın
  ws.Range['A1'].Font.Bold := True;
  ws.Range['A1'].Interior.Color := clYellow;

  Book.SaveAs('output.xls');
end;

XLSX (lxHandleX)

uses lxHandleX;

var
  Book: TXLSXWorkbook;
  ws:   TXLSXWorksheet;
  cell: TXLSXCell;
begin
  Book := TXLSXWorkbook.Create;
  try
    ws := Book.Sheets.Add('Sheet1');

    // Bir dize ve sayısal bir değer yazın
    ws.Cells[1, 1].Value := 'Product';
    ws.Cells[1, 2].Value := 'Price';
    ws.Cells[2, 1].Value := 'Widget';
    ws.Cells[2, 2].Value := 9.99;

    // Para birimi sayı biçimi uygulayın
    cell := ws.Cells[2, 2];
    cell.NumberFormat := '$#,##0.00';

    Book.SaveAs('output.xlsx');
  finally
    Book.Free;
  end;
end;
Tek bir demo projesinde her iki cepheyi kapsayan daha geniş bir anlatım için API Tour Demo sayfasına bakın

Özellikler

Dosya G/Ç ve Akış (Stream) Desteği

Mevcut Excel dosyalarını okuyun, yeni veya mevcut Excel dosyalarına yazın, klasik XLS şifre korumasını ve XLSX şifreli kaydetme iş akışlarını işleyin ve tüm çalışma kitabını yüklemeden XLS ve XLSX dosyalarından veya akışlarından sayfa adlarını hızlı bir şekilde listeleyin. Bir CSV'nin çalışma kitabı olarak açılması IXLSWorkbook.OpenCSV üzerinden desteklenir

Hücre Değerleri ve Formüller

Tüm yerel Excel türlerindeki hücre değerlerini okuyun ve yazın: sayı, dize, tarih/saat, mantıksal (boolean) ve formül Yerleşik hesaplama motoru, hem klasik XLS hem de XLSX çalışma kitaplarında formülleri değerlendirerek şunları destekler:
  • Metin işlevleri (LEFT, MID, TRIM, SUBSTITUTE, …)
  • Tarih ve iş günü işlevleri (DATE, NETWORKDAYS, WORKDAY, …)
  • Mühendislik ve taban dönüştürme işlevleri (BIN2DEC, HEX2DEC, …)
  • Bit düzeyinde işlevler (BITAND, BITOR, BITXOR, …)
  • İstatistiksel ve toplamsal işlevler (AVERAGE, SUMIF, COUNTIFS, …)
  • Matematik işlevleri (ROUND, MOD, POWER, …)
Bir OnUserFunction geri çağrısı (callback), çalışma zamanında özel veya desteklenmeyen çalışma sayfası işlevlerini ele almanıza olanak tanır. İmza ve örnekler için OnUserFunction callback sayfasına bakın
Formula evaluation example

Hücre Biçimlendirme

Hücre görünüm özniteliklerine tam erişim:
  • Yazı tipleri — ad, boyut, renk (RGB veya tema rengi + ton), kalın, italik, altı çizili, üstü çizili, üst simge, alt simge, gölge ve anahat
  • Hizalama — yatay ve dikey hizalama, metin yönü (açı), girinti düzeyi, metni kaydır, sığdırmak için küçült ve okuma sırası (RTL/LTR)
  • Kenarlıklar — dört kenar ve köşegenlerin tümü, çizgi stili, ağırlık ve RGB / tema rengi
  • İç (dolgu) — düz dolgu, desen dolguları, TintAndShade içeren tema rengi dahil ön plan ve arka plan renkleri
  • Sayı biçimleri — tarih, saat, para birimi, yüzde ve bilimsel gösterim için yerleşik ve özel biçim dizeleri
  • Yorumlar / ek açıklamalar — hücre yorumları ekleme, okuma ve stillendirme

Aralık (Range) İşlemleri

IXLSRange (klasik cephe) ve TXLSXRange (XLSX cephesi) zengin bir aralık işlemleri seti sunar:
  • Hücreleri birleştirin ve ayırın; herhangi bir hücrenin birleştirilmiş alanına erişin
  • Aralıkları kopyalayın, taşıyın, ekleyin ve silin (kaydırma yönü kontrolü ile)
  • Anahat/daraltma görünümleri için satırları veya sütunları gruplayın ve grubunu çözün
  • Satır yüksekliğini ve sütun genişliğini hücre içeriğine göre otomatik sığdırın (AutoFit)
  • Yerleşik adlandırılmış hücre stillerini uygulayın (ApplyBuiltinStyle)
  • Çoklu alan seçimleri (TXLSWorksheet.SelectAreas)
  • Toplu hücre işleme için ForEachCell yineleme geri çağrısı (callback)

Çalışma Sayfası Özellikleri

Çalışma sayfası düzeyinde kontrol şunları kapsar:
  • Sayfa adı, sekme rengi, görünürlük (gizli / çok gizli) ve dizin tabanlı gezinme
  • İzin başına ayrıntı düzeyi ile sayfa koruması; çalışma kitabı düzeyinde koruma
  • Bölmeleri dondurma, bölmeleri ayırma ve kaydırma konumu
  • Kriterlere sahip AutoFilter aralıkları; liste veri doğrulama kuralları
  • Koşullu biçimlendirme: renk ölçekleri (2 ve 3 renk), veri çubukları ve simge kümeleri
  • Çalışma sayfası genelinde metin bulma ve metin değiştirme
  • Görünüm seçenekleri: kılavuz çizgisi rengi, formül modunu göster, sıfırları göster, başlıkları göster, sağdan sola (RTL) göster, anahat sembollerini göster ve yakınlaştırma seviyesi
  • Yapılandırılmış tablolar (TXLSTable / TXLSXTable): başlık satırları ve şeritli (banded) satırlar içeren Excel tabloları ekleyin, erişin ve stillendirin
  • Grafikler: TXLSWorksheetsAddChartSheet ve TXLSXChart aracılığıyla grafik sayfaları ve gömülü grafikler ekleyin

Köprüler (Hyperlinks) ve Adlandırılmış Aralıklar

IXLSHyperLinks aracılığıyla köprüler (URL, mailto ve çalışma kitabı içi hücre referansları) ekleyin ve okuyun. IXLSNames / TXLSXDefinedNames aracılığıyla çalışma kitabı ve çalışma sayfası kapsamında adlandırılmış aralıkları tanımlayın ve çözümleyin. Adlandırılmış aralıklar formüllerde kullanılabilir ve RefersToRange aracılığıyla bir hücre aralığına geri çözümlenebilir

Görüntüler ve Şekiller

Raster görüntüleri (BMP, JPG, PNG, GIF) TXLSShapes.AddPicture / TXLSXWorksheet.AddImage aracılığıyla çalışma sayfalarına gömün. TXLSShapes.AddTextBox aracılığıyla klasik XLS'te bağımsız metin kutuları oluşturun. BIFF8 çizimlerinde Excel tarafından oluşturulan OfficeArt konektörü ve çözücü (solver) kurallarını koruyun ve uzman çizim iş akışları için TXLSShape.OfficeArtOptions üzerinden ham şekil FOPT seçeneklerini sunun

Sayfa Yapısı ve Yazdırma

IXLSPageSetup aracılığıyla yazdırma düzenine tam erişim:
  • Kağıt boyutu (A4, Letter, Legal ve diğerleri; bkz. PaperSize)
  • Yön (dikey / yatay), kenar boşlukları, yatay / dikey olarak ortalama
  • Excel biçimlendirme kodlarını (kalın, italik, sayfa numarası, tarih vb.; bkz. Header/Footer formatting codes) içeren üstbilgi ve altbilgi dizeleri
  • Manuel yatay ve dikey sayfa sonları
  • Sayfalara sığdırma ölçeklemesi; yakınlaştırma yüzdesi; yazdırma alanı; yazdırma başlıkları (yinelenen satırlar / sütunlar)
  • Taslak kalitesi; siyah-beyaz; kılavuz çizgilerini yazdır; başlıkları yazdır; notları yazdır

Dışa Aktarma Formatları

Çalışma kitaplarının tamamını, tek tek çalışma sayfalarını veya rastgele hücre aralıklarını şuralara aktarın:
  • HTML — önizleme veya e-posta iş akışları için tam belge veya satır içi tablo parçası; TXLSHTMLExport ve TXLSXHtmlExportOptions aracılığıyla kontrol edilebilir
  • RTF — kelime işlemci içe aktarımı için zengin metin (rich text)
  • CSV — yapılandırılabilir ayırıcı ve kodlamaya sahip virgülle ayrılmış değerler
  • TSV — sekmeyle ayrılmış değerler
  • ODSlxHandleX cephesi üzerinden OpenDocument Elektronik Tablosu

Veritabanı ve Izgara (Grid) Dışa Aktarımı

Herhangi bir TDataSet uyumlu veri kümesini (dataset) veya bir TDBGrid'i TDataToXLS veya TGridToXLS bileşenlerini kullanarak doğrudan Excel, HTML veya RTF'ye dışa aktarın Her iki bileşen de ince ayarlı çıktı kontrolü için AfterCell, AfterRow, AfterTitle ve AfterGroup olaylarını tetikler ve çok düzeyli gruplama alanlarını destekler

VBA Projesini Koruma

HotXLS, makro etkinleştirilmiş çalışma kitaplarını gidiş-dönüş (round-trip) işlerken VBA projesi yüklerini korur TXLSVBAProject ve TXLSVBAModule aracılığıyla salt okunur modül incelemesi yapılabilir Bir yükü algılamak için IXLSWorkbook.HasVBAProject çağrısı yapın ve dosyalar arasında aktarmak için LoadVBAProjectFromFile / SaveVBAProjectToFile kullanın

Unicode ve Uluslararası Metin

Tüm dize işlemleri yerel olarak Unicode'dur (Unicode-native). HotXLS, CJK, Arapça, İbranice, Tayca ve diğer komut dosyaları (scripts) dahil olmak üzere herhangi bir dilde yazılmış Excel dosyalarını doğru çift yönlü metin (RTL) ve okuma sırası desteğiyle okur ve yazar
Unicode character support example

Özet Tablolar (Classic XLS)

TXLSWorksheet.AddPivotTable ile bir kaynak aralıktan özet tablolar (pivot tables) oluşturun, alan yerleşimini ve veri alanı sayı biçimlerini yapılandırın ve TXLSWorksheet.PivotTables aracılığıyla özet modelini inceleyin Alan ve filtre ayrıntıları için Classic XLS pivot table API sayfasına bakın

Avantajlar

No Office dependency XLS ve XLSX dosyalarını doğrudan ikili düzeyde okur ve yazar. Microsoft Excel veya Office'in yüklenmesine, lisanslanmasına veya çalıştırılmasına gerek yoktur. Bu, COM/OLE otomasyon yükünü ortadan kaldırır, Office birlikte çalışabilirliği tarafından dayatılan iş parçacığı (threading) kısıtlamalarını önler ve HotXLS'in masaüstü Office kurulumunun pratik olmadığı sunucu tarafı ve hizmet bağlamlarında kullanılmasını sağlar
High performance BIFF8 ve OOXML ayrıştırıcıları (parsers), sıcak yol (hot path) için ara XML DOM tahsisi olmaksızın yerel Object Pascal ile yazılmıştır. Yüz binlerce satırı olan büyük çalışma kitapları düşük tepe bellek kullanımıyla okunabilir ve yazılabilir Dosya boyutlarını küçük tutmak için paylaşılan dize (shared-string) tekilleştirme ve paylaşılan formül (shared-formula) sıkıştırması otomatik olarak uygulanır
OLE migration path Klasik cephe API yüzeyi (çalışma kitabı, çalışma sayfası, aralık, yazı tipi, kenarlıklar, iç kısım, sayfa yapısı), OLE Otomasyonundan aşina olunan Excel nesne modelini yakından yansıtır. Bu, mevcut OLE tabanlı projelerin geçişini basitleştirir: COM çağrılarını HotXLS çağrılarıyla değiştirin, Office bağımlılığını kaldırın ve yerel performansı kazanın
Dual-facade design Eski XLS kodu lxHandle'a karşı değişmeden derlenmeye ve çalışmaya devam ederken, yeni XLSX kodu daha zengin lxHandleX cephesini kullanır. Bir dosya formatını birer birer taşımak güvenli ve aşamalıdır
Formula engine included Yerleşik çok geçişli bir hesaplama motoru, açılışta Excel'in yeniden hesaplama yapmasına gerek kalmadan en yaygın çalışma sayfası işlevlerini işler. Özel işlevler OnUserFunction geri çağrısı (callback) aracılığıyla işlenir
Easy to use Kullanıma hazır Delphi bileşenleri (TDataToXLS, TGridToXLS), yaygın dışa aktarma görevleri için kod gerektirmez. Akıcı (fluent) aralık API'si A1 notasyonunu, R1C1 notasyonunu ve sıfır tabanlı satır/sütun indekslemesini destekler
Thread-safe file I/O Paylaşılan bir Office süreci olmadığından, senkronizasyon olmadan bağımsız iş parçacıklarında aynı anda birden fazla TXLSXWorkbook örneği (instance) oluşturulabilir ve kaydedilebilir, bu da HotXLS'i çok iş parçacıklı (multi-threaded) rapor oluşturma sunucuları için uygun hale getirir

Uyumluluk

HotXLS, aşağıdaki RAD Studio sürümleriyle uyumludur:
Delphi XE5, XE6, XE7, XE8, 10 Seattle, 10.1 Berlin, 10.2 Tokyo, 10.3 Rio, 10.4 Sydney, 11 Alexandria, 12 Athens, 13 Florence
C++Builder XE5, XE6, XE7, XE8, 10 Seattle, 10.1 Berlin, 10.2 Tokyo, 10.3 Rio, 10.4 Sydney, 11 Alexandria, 12 Athens, 13 Florence
Target platforms Windows 32-bit ve 64-bit
Excel file formats XLS (BIFF8, Excel 97–2003), XLSX (OOXML, Excel 2007+), ODS (OpenDocument 1.2)
Export-only formats HTML, RTF, CSV, TSV

Ayrıca Bakınız