مرور کلی
![]() |
کتابخانه خواندن/نوشتن Excel در HotXLS یک کامپوننت با کارایی بالا برای خواندن و نوشتن فایلهای Excel برای Delphi و C++Builder است
این کتابخانه میتواند صفحات گسترده Excel جدید ایجاد کرده و کتابهای کار XLS و XLSX موجود را بدون نیاز به نصب
Microsoft Excel یا Office بر روی دستگاه بخواند یا تغییر دهد
HotXLS به طور کامل به زبان Object Pascal نوشته شده است. فایلهای Excel را مستقیماً
در سطح باینری و OOXML میخواند و مینویسد، بنابراین هیچ سربار اتوماسیون COM/OLE وجود ندارد و هیچ وابستگی به نصب
یا مجوز Office نیست. HotXLS از Delphi و C++Builder نسخه XE5 تا ۱۳ Florence پشتیبانی میکند
قالببندی رنگ XLS کلاسیک عمداً مبتنی بر پالت رنگ باقی میماند. برای تصمیم ThemeColor / TintAndShade به مدل رنگ کلاسیک XLS
مراجعه کنید
|
معماری رابط دوگانه
HotXLS دو واحد رابط همزیست را در اختیار میگذارد تا کد قدیمی XLS و کد جدید XLSX بتوانند کنار یکدیگر
بدون نیاز به بازسازی کد قرار گیرند:
lxHandle |
رابط اصلی برای فرمت Excel 97–2003 BIFF8 (.xls)، به علاوه صادرات HTML، RTF، CSV، و TSV
تمام کد موجود کاربران بدون تغییر به استفاده از این واحد ادامه میدهد. نقاط ورود:
TXLSWorkbook، TXLSWorksheet، IXLSWorkbook، IXLSRange
|
lxHandleX |
رابط اصلی برای فرمت Excel 2007+ OOXML (.xlsx) و صفحه گسترده OpenDocument
(.ods) برای خواندن/نوشتن. انواع کتاب کار و برگه کار مختص خود را فراهم میکند تا رفتارهای
خاص XLSX روی مسیر کد BIFF بازطراحی نشوند. نقاط ورود:
TXLSXWorkbook، TXLSXWorksheet، TXLSXCell
|
هر دو رابط موتور فرمول، لایه پشتیبانی Unicode، و خط لوله صادرات یکسانی را به اشتراک میگذارند
برای مشاهده سلسله مراتب کامل کلاسهای در معرض نمایش توسط
lxHandleX به مرور کلی رابط XLSX مراجعه کنید
شروع سریع
قطعه کدهای زیر حداقل کد لازم برای ایجاد یک کتاب کار با یک برگه کار و نوشتن
یک مقدار در یک سلول را نشان میدهند.
XLS کلاسیک (lxHandle)
uses lxHandle;
var
Book: IXLSWorkbook;
ws: TXLSWorksheet;
begin
Book := TXLSWorkbook.Create;
// افزودن یک برگه کار و نامگذاری آن
ws := Book.Sheets.Add;
ws.Name := 'Sheet1';
// نوشتن مقادیر در سلولها با استفاده از نماد A1
ws.Range['A1'].Value := 'Hello';
ws.Range['B1'].Value := 42;
ws.Range['C1'].Formula := '=B1*2';
// اعمال قالببندی پایه
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');
// نوشتن یک مقدار رشتهای و یک مقدار عددی
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;
// اعمال قالب اعداد ارزی
cell := ws.Cells[2, 2];
cell.NumberFormat := '$#,##0.00';
Book.SaveAs('output.xlsx');
finally
Book.Free;
end;
end;
برای یک آموزش جامعتر که هر دو رابط را در یک پروژه نمایشی واحد پوشش میدهد، به
نمونه تور API مراجعه کنید
ویژگیها
ورودی/خروجی فایل و پشتیبانی از جریان
خواندن فایلهای Excel موجود، نوشتن فایلهای Excel جدید یا موجود، مدیریت حفاظت با رمز عبور XLS کلاسیک و
جریانهای کاری ذخیرهسازی رمزگذاریشده XLSX، و فهرستبرداری سریع نام برگهها از فایلها و جریانهای XLS و XLSX بدون
بارگذاری کل کتاب کار. باز کردن یک CSV به عنوان کتاب کار از طریق
IXLSWorkbook.OpenCSV پشتیبانی میشود
مقادیر سلول و فرمولها
خواندن و نوشتن مقادیر سلول از تمام انواع بومی Excel: عدد، رشته، تاریخ/زمان، بولی، و فرمول
موتور محاسبه داخلی فرمولها را در کتابهای کار XLS و XLSX کلاسیک ارزیابی میکند و از موارد زیر پشتیبانی میکند:
- توابع متنی (
LEFT،MID،TRIM،SUBSTITUTE، …) - توابع تاریخ و روزهای کاری (
DATE،NETWORKDAYS،WORKDAY، …) - توابع مهندسی و تبدیل مبنا (
BIN2DEC،HEX2DEC، …) - توابع بیتی (
BITAND،BITOR،BITXOR، …) - توابع آماری و تجمیعی (
AVERAGE،SUMIF،COUNTIFS، …) - توابع ریاضی (
ROUND،MOD،POWER، …)
یک callback به نام
OnUserFunction به شما امکان میدهد توابع برگه کار سفارشی یا پشتیبانینشده را در زمان اجرا مدیریت کنید
برای امضا و مثالها به callback OnUserFunction مراجعه کنید

قالببندی سلول
دسترسی کامل به ویژگیهای ظاهری سلول:
- فونتها — نام، اندازه، رنگ (RGB یا رنگ تم + سایه)، ضخیم، مورب، زیرخط، خطخورده، بالانویس، پاییننویس، سایه، و خطدار
- تراز — تراز افقی و عمودی، جهت متن (زاویه)، سطح تورفتگی، شکستن خط، کوچکشدن برای جا شدن، و ترتیب خواندن (RTL/LTR)
- حاشیهها — تمام چهار لبه و قطرها، سبک خط، ضخامت، و رنگ RGB / تم
- داخلی (پر کردن) — پرکردن جامد، پرکردن با طرح، رنگهای پیشزمینه و پسزمینه شامل رنگ تم با TintAndShade
- قالب اعداد — رشتههای قالب داخلی و سفارشی برای تاریخ، زمان، ارز، درصد، و نماد علمی
- توضیحات / حاشیهنویسی — افزودن، خواندن، و قالببندی توضیحات سلول
عملیات محدوده
IXLSRange (رابط کلاسیک) و TXLSXRange (رابط XLSX) مجموعهای غنی از
عملیات محدوده را فراهم میکنند:
- ادغام و لغو ادغام سلولها؛ دسترسی به ناحیه ادغامشده هر سلول
- کپی، انتقال، درج، و حذف محدودهها با کنترل جهت جابجایی
- گروهبندی و لغو گروهبندی ردیفها یا ستونها برای نماهای طرح کلی/جمعشدن
- تنظیم خودکار ارتفاع ردیف و عرض ستون به محتوای سلول
- اعمال استایلهای سلول نامدار داخلی (
ApplyBuiltinStyle) - انتخابهای چند ناحیهای (
TXLSWorksheet.SelectAreas) - callback تکرار ForEachCell برای پردازش دستهای سلول
ویژگیهای برگه کار
کنترل در سطح برگه کار شامل موارد زیر است:
- نام برگه، رنگ زبانه، دید (پنهان / بسیار پنهان)، و ناوبری بر اساس فهرست
- حفاظت از برگه با دقت مجوز به ازای هر مجوز؛ حفاظت در سطح کتاب کار
- قفل کردن صفحه، تقسیم صفحه، و موقعیت اسکرول
- محدودههای فیلتر خودکار با معیارها؛ قوانین اعتبارسنجی دادههای فهرستی
- قالببندی شرطی: مقیاسهای رنگی (۲ و ۳ رنگ)، نوارهای داده، و مجموعههای آیکون
- جستجو و جایگزینی متن در سراسر برگه کار
- گزینههای نما: رنگ خطوط شبکه، حالت نمایش فرمول، نمایش صفرها، نمایش عناوین، نمایش راست به چپ، نمایش نمادهای طرح کلی، و سطح بزرگنمایی
- جداول ساختاریافته (
TXLSTable/TXLSXTable): افزودن، دسترسی، و قالببندی جداول Excel با ردیفهای سرستون و ردیفهای نواری - نمودارها: افزودن برگههای نمودار و نمودارهای تعبیهشده از طریق
TXLSWorksheetsAddChartSheetوTXLSXChart
لینکهای فراپیوند و محدودههای نامدار
افزودن و خواندن لینکهای فراپیوند (URL، mailto، و مراجع سلول داخل کتاب کار) از طریق
IXLSHyperLinks. تعریف و حل محدودههای نامدار در دامنه کتاب کار و برگه کار از طریق
IXLSNames / TXLSXDefinedNames. محدودههای نامدار میتوانند در فرمولها استفاده شده و
از طریق RefersToRange به یک محدوده سلول برگردانده شوند
تصاویر و اشکال
تعبیه تصاویر رستری (BMP، JPG، PNG، GIF) در برگههای کار از طریق
TXLSShapes.AddPicture / TXLSXWorksheet.AddImage. ایجاد جعبههای متن مستقل
در XLS کلاسیک از طریق TXLSShapes.AddTextBox. حفظ اتصالدهندههای OfficeArt ایجادشده توسط Excel و
قوانین حلکننده در نقاشیهای BIFF8، و نمایش گزینههای خام FOPT شکل از طریق
TXLSShape.OfficeArtOptions برای جریانهای کاری نقاشی تخصصی
تنظیم صفحه و چاپ
دسترسی کامل به طرحبندی چاپ از طریق
IXLSPageSetup:
- اندازه کاغذ (A4، Letter، Legal، و بسیاری دیگر؛ به PaperSize مراجعه کنید)
- جهتگیری (عمودی / افقی)، حاشیهها، توسط افقی / عمودی
- رشتههای سرصفحه و پاصفحه با کدهای قالببندی Excel (ضخیم، مورب، شماره صفحه، تاریخ، و غیره؛ به کدهای قالببندی سرصفحه/پاصفحه مراجعه کنید)
- شکستهای صفحه افقی و عمودی دستی
- مقیاسبندی جا شدن در صفحات؛ درصد بزرگنمایی؛ ناحیه چاپ؛ عناوین چاپ (تکرار ردیفها / ستونها)
- کیفیت پیشنویس؛ سیاه و سفید؛ چاپ خطوط شبکه؛ چاپ عناوین؛ چاپ یادداشتها
فرمتهای صادرات
صادرات کتابهای کار کامل، برگههای کار فردی، یا محدودههای سلولی دلخواه به:
- HTML — سند کامل یا یک جزء جدول درونخطی برای پیشنمایش یا جریانهای کاری ایمیل؛
قابل کنترل از طریق
TXLSHTMLExportوTXLSXHtmlExportOptions - RTF — متن غنی برای وارد کردن در پردازندههای متنی
- CSV — مقادیر جداشده با کاما با جداکننده و رمزگذاری قابل تنظیم
- TSV — مقادیر جداشده با تب
- ODS — صفحه گسترده OpenDocument از طریق رابط
lxHandleX
صادرات پایگاه داده و شبکه
صادرات هر مجموعه داده سازگار با TDataSet یا TDBGrid مستقیماً به Excel، HTML، یا RTF با استفاده از
TDataToXLS یا
TGridToXLS
هر دو کامپوننت رویدادهای AfterCell، AfterRow، AfterTitle، و
AfterGroup را برای کنترل دقیق خروجی فعال میکنند و از فیلدهای گروهبندی چند سطحی پشتیبانی میکنند
حفظ پروژه VBA
HotXLS محتوای پروژه VBA را هنگام انتقال کتابهای کار با قابلیت ماکرو حفظ میکند. بررسی ماژول فقط-خواندنی
از طریق
TXLSVBAProject و TXLSVBAModule در دسترس است
IXLSWorkbook.HasVBAProject را برای تشخیص محتوا و
LoadVBAProjectFromFile / SaveVBAProjectToFile را برای انتقال آن بین فایلها فراخوانی کنید
Unicode و متن بینالمللی
تمام پردازش رشتهها به صورت بومی Unicode است. HotXLS فایلهای Excel تألیفشده به هر زبانی را میخواند و مینویسد،
از جمله CJK، عربی، عبری، تایلندی، و سایر خطوط، با پشتیبانی صحیح از متن دو جهته و ترتیب خواندن

جداول محوری (XLS کلاسیک)
ایجاد جداول محوری از یک محدوده منبع با
TXLSWorksheet.AddPivotTable، پیکربندی جایگذاری فیلد و قالبهای اعداد فیلد داده، و
بازرسی مدل محوری از طریق TXLSWorksheet.PivotTables
برای جزئیات فیلد و فیلتر به API جدول محوری XLS کلاسیک مراجعه کنید
مزایا
| No Office dependency | فایلهای XLS و XLSX را مستقیماً در سطح باینری میخواند و مینویسد. نیازی به نصب، مجوز، یا اجرای Microsoft Excel یا Office نیست. این امر سربار اتوماسیون COM/OLE را حذف میکند، از محدودیتهای رشتهسازی تحمیلشده توسط interop Office جلوگیری میکند، و امکان استفاده از HotXLS را در زمینههای سمت سرور و سرویس فراهم میکند که در آنها نصب Office در سطح دسکتاپ غیرعملی است |
| High performance | تجزیهگرهای BIFF8 و OOXML به زبان Object Pascal بومی بدون تخصیص واسط XML DOM برای مسیر اصلی نوشته شدهاند. کتابهای کار بزرگ با صدها هزار ردیف میتوانند با حافظه اوج پایین خوانده و نوشته شوند. حذف تکراری رشتههای مشترک و فشردهسازی فرمولهای مشترک به طور خودکار اعمال میشود تا اندازه فایلها کوچک بماند |
| OLE migration path | سطح API رابط کلاسیک (کتاب کار، برگه کار، محدوده، فونت، حاشیهها، داخلی، تنظیم صفحه) به دقت مدل شیء Excel آشنا از OLE Automation را منعکس میکند. این امر مهاجرت پروژههای مبتنی بر OLE موجود را آسان میکند: فراخوانیهای COM را با فراخوانیهای HotXLS جایگزین کنید، وابستگی به Office را حذف کنید، و کارایی بومی به دست آورید |
| Dual-facade design |
کد قدیمی XLS بدون تغییر در مقابل lxHandle کامپایل و اجرا میشود در حالی که
کد جدید XLSX از رابط غنیتر lxHandleX استفاده میکند. مهاجرت یک فرمت فایل در یک زمان ایمن و
تدریجی است
|
| Formula engine included |
یک موتور محاسبه چند مرحلهای داخلی رایجترین توابع برگه کار را بدون نیاز به
محاسبه مجدد Excel هنگام باز شدن مدیریت میکند. توابع سفارشی از طریق callback OnUserFunction
مدیریت میشوند
|
| Easy to use |
کامپوننتهای آماده استفاده Delphi (TDataToXLS، TGridToXLS) برای
وظایف صادرات رایج نیازی به کد ندارند. API محدوده روان از نماد A1، نماد R1C1، و
فهرستبندی ردیف/ستون مبتنی بر صفر پشتیبانی میکند
|
| Thread-safe file I/O |
از آنجایی که هیچ فرآیند Office مشترکی وجود ندارد، چندین نمونه TXLSXWorkbook میتوانند
به طور همزمان بر روی رشتههای مستقل بدون همگامسازی ایجاد و ذخیره شوند، که HotXLS را
برای سرورهای تولید گزارش چند رشتهای مناسب میکند
|
سازگاری
HotXLS با نسخههای زیر RAD Studio سازگار است:
| 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 ۳۲ بیتی و ۶۴ بیتی |
| Excel file formats | XLS (BIFF8، Excel 97–2003)، XLSX (OOXML، Excel 2007+)، ODS (OpenDocument 1.2) |
| Export-only formats | HTML, RTF, CSV, TSV |
همچنین ببینید
- مرور کلی رابط XLSX (lxHandleX) — سلسله مراتب کامل کلاس و اعضای API مختص XLSX/ODS
- نمونه تور API — اولین نمایشی که هنگام یادگیری HotXLS از صفر اجرا میشود
- IXLSWorkbook — مرجع رابط کتاب کار XLS کلاسیک
- TXLSWorksheet — مرجع کلاس برگه کار XLS کلاسیک
- IXLSRange — رابط محدوده: دسترسی به سلول، قالببندی، و عملیات
- TXLSXWorkbook — مرجع کلاس کتاب کار XLSX
- TXLSXWorksheet — مرجع کلاس برگه کار XLSX
- TGridToXLS — کامپوننت آماده صادرات DBGrid به Excel
- TDataToXLS — کامپوننت آماده صادرات مجموعه داده به Excel
- callback OnUserFunction — نقطه گسترش تابع برگه کار سفارشی
- مدل رنگ کلاسیک XLS — منطق طراحی رنگ مبتنی بر پالت و رنگ تم
- اعضای API اضافی XLS کلاسیک — خصوصیات محاسبه، خصوصیات سند، جداول محوری، و موارد بیشتر
- مثالها — مرور کلی پروژههای نمونه
- نمونه سفارش خرید — مثال کامل ایجاد XLS با کد منبع
