Документация HotXLS

Преглед

HotXLS Logo
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 за подписа и примери
Formula evaluation example

Форматиране на клетки

Пълен достъп до атрибутите за външен вид на клетките:
  • Шрифтове — име, размер, цвят (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, арабски, иврит, тайландски и други скриптове, с правилна поддръжка за двупосочен текст и ред на четене
Unicode character support example

Обобщени таблици (класически 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 с изходен код