Преглед
![]() |
HotXLS Excel Read/Write Library е високопроизводителен компонент за четене и запис в Excel за Delphi и C++Builder
Той може да създава нови електронни таблици на Excel и да чете или променя съществуващи работни книги XLS и XLSX, без да изисква
Microsoft Excel или Office да бъдат инсталирани на машината
HotXLS е написан изцяло на Object Pascal. Той чете и записва Excel файлове директно на
бинарно и OOXML ниво, така че няма допълнително натоварване от COM/OLE автоматизация и няма зависимост от лицензиран или наличен Office
HotXLS поддържа Delphi и C++Builder от XE5 до 13 Florence
Класическото цветово форматиране на XLS умишлено остава базирано на палитра. Вижте Класически XLS цветови модел
за решението относно ThemeColor / TintAndShade
|
Архитектура с двойна фасада
HotXLS предоставя два съвместно съществуващи фасадни модула, така че старият XLS код и новият XLSX код да могат да съществуват един до друг
без никакво рефакториране:
lxHandle |
Основна фасада за формат Excel 97–2003 BIFF8 (.xls), плюс експортиране в HTML, RTF, CSV и TSV
Целият съществуващ потребителски код продължава да използва този модул непроменен. Входни точки:
TXLSWorkbook, TXLSWorksheet, IXLSWorkbook, IXLSRange
|
lxHandleX |
Основна фасада за четене/запис на формат Excel 2007+ OOXML (.xlsx) и OpenDocument Spreadsheet
(.ods). Предоставя свои собствени типове работни книги и работни листове, така че специфичното за XLSX поведение да не се
прикрепя ретроактивно към BIFF пътя на кода. Входни точки:
TXLSXWorkbook, TXLSXWorksheet, TXLSXCell
|
И двете фасади споделят един и същ механизъм за формули, същия слой за поддръжка на Unicode и същия конвейер за експортиране
Вижте XLSX Facade Overview за пълната йерархия на класовете, предоставена от
lxHandleX
Бърз старт
Следните фрагменти показват минималния код за създаване на работна книга с един работен лист и запис на стойност в клетка.
Classic 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 Tour Demo
Характеристики
Вход/изход на файлове и поддръжка на потоци
Четене на съществуващи 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, …)
Обратното извикване
OnUserFunction ви позволява да обработвате персонализирани или неподдържани функции на работния лист по време на изпълнение
Вижте OnUserFunction callback за подписа и примери

Форматиране на клетки
Пълен достъп до атрибутите за външен вид на клетките:
- Шрифтове — име, размер, цвят (RGB или цвят на темата + оттенък), получер, курсив, подчертаване, зачеркнат, горен индекс, долен индекс, сянка и контур
- Подравняване — хоризонтално и вертикално подравняване, ориентация на текста (ъгъл), ниво на отстъп, пренасяне на текст, свиване за побиране и ред на четене (RTL/LTR)
- Рамки — всичките четири ръба и диагонали, стил на линията, дебелина и RGB / цвят на темата
- Вътрешност (запълване) — плътно запълване, запълване с шаблони, цветове на преден план и фон, включително цвят на темата с TintAndShade
- Числови формати — вградени и персонализирани низове за форматиране за дата, час, валута, процент и научна нотация
- Коментари / анотации — добавяне, четене и стилизиране на коментари в клетки
Операции с диапазони
IXLSRange (класическа фасада) и TXLSXRange (XLSX фасада) предоставят богат набор от
операции с диапазони:
- Обединяване и разделяне на клетки; достъп до обединената област на всяка клетка
- Копиране, преместване, вмъкване и изтриване на диапазони, с контрол на посоката на изместване
- Групиране и разгрупиране на редове или колони за изгледи на контур/свиване
- Автоматично напасване (AutoFit) на височината на реда и ширината на колоната към съдържанието на клетката
- Прилагане на вградени наименовани стилове на клетки (
ApplyBuiltinStyle) - Избор на множество области (
TXLSWorksheet.SelectAreas) - Обратно извикване за итерация ForEachCell за пакетна обработка на клетки
Характеристики на работния лист
Контролът на ниво работен лист обхваща:
- Име на листа, цвят на раздела, видимост (скрит / много скрит) и навигация, базирана на индекс
- Защита на листа с детайлност по разрешения; защита на ниво работна книга
- Замразяване на панели, разделяне на панели и позиция на превъртане
- Диапазони на AutoFilter с критерии; правила за валидиране на данни на списък
- Условно форматиране: цветови скали (2 и 3 цвята), ленти с данни и набори от икони
- Търсене на текст и заместване на текст в целия работен лист
- Опции за изглед: цвят на мрежата, режим на показване на формули, показване на нули, показване на заглавия, показване отдясно наляво, показване на символи за контур и ниво на мащабиране
- Структурирани таблици (
TXLSTable/TXLSXTable): добавяне, достъп и стилизиране на Excel таблици с редове със заглавия и редуващи се редове - Диаграми: добавяне на листове с диаграми и вградени диаграми чрез
TXLSWorksheetsAddChartSheetиTXLSXChart
Хипервръзки и наименовани диапазони
Добавяне и четене на хипервръзки (URL, mailto и препратки към клетки в рамките на работната книга) чрез
IXLSHyperLinks. Дефиниране и разрешаване на наименовани диапазони в обхвата на работната книга и работния лист чрез
IXLSNames / TXLSXDefinedNames. Наименованите диапазони могат да се използват във формули и да се
разрешават обратно до диапазон от клетки чрез RefersToRange
Изображения и форми
Вграждане на растерни изображения (BMP, JPG, PNG, GIF) в работни листове чрез
TXLSShapes.AddPicture / TXLSXWorksheet.AddImage. Създаване на самостоятелни текстови полета
в класическия XLS чрез TXLSShapes.AddTextBox. Запазване на създадените в Excel правила за съединители и
решаване OfficeArt в BIFF8 чертежи и предоставяне на необработени FOPT опции на формите чрез
TXLSShape.OfficeArtOptions за експертни работни процеси на чертане
Настройка на страницата и печат
Пълен достъп до оформлението за печат чрез
IXLSPageSetup:
- Размер на хартията (A4, Letter, Legal и много други; вижте PaperSize)
- Ориентация (портрет / пейзаж), полета, центриране хоризонтално / вертикално
- Низове за горен и долен колонтитул с кодове за форматиране на Excel (получер, курсив, номер на страница, дата и др.; вижте Header/Footer formatting codes)
- Ръчни хоризонтални и вертикални прекъсвания на страници
- Мащабиране за побиране в страници; процент на мащабиране; област за печат; печат на заглавия (повтаряне на редове / колони)
- Качество на чернова; черно-бяло; отпечатване на мрежата; отпечатване на заглавия; отпечатване на бележки
Формати за експортиране
Експортирайте цели работни книги, отделни работни листове или произволни диапазони от клетки в:
- HTML — пълен документ или фрагмент от вградена таблица за предварителен преглед или работни потоци за имейл;
контролируеми чрез
TXLSHTMLExportиTXLSXHtmlExportOptions - RTF — богат текст за импортиране в текстообработващи програми
- CSV — стойности, разделени със запетая, с конфигурируем разделител и кодиране
- TSV — стойности, разделени с табулация
- ODS — OpenDocument Spreadsheet чрез фасадата
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)
Създайте обобщени таблици (pivot tables) от изходен диапазон с
TXLSWorksheet.AddPivotTable, конфигурирайте разположението на полетата и цифровите формати на полетата с данни и
инспектирайте модела на обобщената таблица чрез TXLSWorksheet.PivotTables
Вижте Classic XLS pivot table API за подробности относно полета и филтри
Предимства
| No Office dependency | Чете и записва XLS и XLSX файлове директно на бинарно ниво. Microsoft Excel или Office не трябва да бъдат инсталирани, лицензирани или стартирани. Това елиминира натоварването от COM/OLE автоматизация, избягва ограниченията на нишките, наложени от оперативната съвместимост с 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 да преизчислява при отваряне. Потребителските функции се обработват чрез обратно извикване OnUserFunction
|
| Easy to use |
Delphi drop-in компонентите (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 32-битов и 64-битов |
| Excel file formats | XLS (BIFF8, Excel 97–2003), XLSX (OOXML, Excel 2007+), ODS (OpenDocument 1.2) |
| Export-only formats | HTML, RTF, CSV, TSV |
Вижте също
- XLSX Facade Overview (lxHandleX) — пълна йерархия на класовете и членове на API, специфични за XLSX/ODS
- API Tour Demo — първото демо, което трябва да стартирате, когато учите HotXLS от нулата
- IXLSWorkbook — справка за интерфейса на класическата XLS работна книга
- TXLSWorksheet — справка за класа на класическия XLS работен лист
- IXLSRange — интерфейс за диапазони: достъп до клетки, форматиране и операции
- TXLSXWorkbook — справка за класа на XLSX работна книга
- TXLSXWorksheet — справка за класа на XLSX работен лист
- TGridToXLS — drop-in компонент за експортиране от DBGrid към Excel
- TDataToXLS — drop-in компонент за експортиране на набор от данни към Excel
- OnUserFunction callback — точка за разширение за потребителски функции на работния лист
- Класически XLS цветови модел — обосновка на дизайна за цветове, базирани на палитра и цветове на теми
- Classic XLS additional API members — свойства за изчисление, свойства на документа, обобщени таблици и други
- Examples — преглед на примерни проекти
- Purchase Order Sample — пълнофункционален пример за създаване на XLS с изходен код
