Genel Bakış
![]() |
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

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:
TXLSWorksheetsAddChartSheetveTXLSXChartaracı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ı;
TXLSHTMLExportveTXLSXHtmlExportOptionsaracı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
- ODS —
lxHandleXcephesi ü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

Ö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
- XLSX Facade Overview (lxHandleX) — tam sınıf hiyerarşisi ve XLSX/ODS'ye özgü API üyeleri
- API Tour Demo — HotXLS'i sıfırdan öğrenirken çalıştırılacak ilk demo
- IXLSWorkbook — klasik XLS çalışma kitabı arayüz referansı
- TXLSWorksheet — klasik XLS çalışma sayfası sınıf referansı
- IXLSRange — aralık arayüzü: hücre erişimi, biçimlendirme ve işlemler
- TXLSXWorkbook — XLSX çalışma kitabı sınıf referansı
- TXLSXWorksheet — XLSX çalışma sayfası sınıf referansı
- TGridToXLS — kullanıma hazır DBGrid'den Excel'e dışa aktarma bileşeni
- TDataToXLS — kullanıma hazır veri kümesinden (dataset) Excel'e dışa aktarma bileşeni
- OnUserFunction callback — özel çalışma sayfası işlevi uzantı noktası
- Klasik XLS renk modeli — palet tabanlı renk ve tema rengi tasarım mantığı
- Classic XLS additional API members — hesaplama özellikleri, belge özellikleri, özet tablolar ve daha fazlası
- Examples — örnek projelere genel bakış
- Purchase Order Sample — kaynak koduyla birlikte tam özellikli XLS oluşturma örneği
