Descripción General
![]() |
HotXLS Excel Read/Write Library es un componente de lectura y escritura de Excel de alto rendimiento para Delphi y C++Builder
Permite crear nuevas hojas de cálculo de Excel y leer o modificar libros de trabajo XLS y XLSX existentes sin necesidad de
tener instalado Microsoft Excel u Office en la computadora
HotXLS está escrito completamente en Object Pascal. Lee y escribe archivos de Excel directamente
a nivel binario y OOXML, por lo que no existe la sobrecarga de automatización COM/OLE ni dependencia de que Office
esté licenciado o presente. HotXLS es compatible con Delphi y C++Builder XE5 hasta 13 Florence
El formato de color XLS clásico permanece intencionalmente basado en paleta. Consulte Modelo de color XLS clásico
para conocer la decisión sobre ThemeColor / TintAndShade
|
Arquitectura de Doble Fachada
HotXLS expone dos unidades de fachada que coexisten, de modo que el código XLS heredado y el nuevo código XLSX pueden
convivir sin necesidad de refactorización:
lxHandle |
Fachada principal para el formato Excel 97–2003 BIFF8 (.xls), además de exportación a HTML, RTF, CSV y TSV
Todo el código de usuario existente continúa usando esta unidad sin cambios. Puntos de entrada:
TXLSWorkbook, TXLSWorksheet, IXLSWorkbook, IXLSRange
|
lxHandleX |
Fachada principal para el formato Excel 2007+ OOXML (.xlsx) y lectura/escritura de OpenDocument Spreadsheet
(.ods). Provee sus propios tipos de libro y hoja de trabajo para que el comportamiento específico de XLSX no
se incorpore de manera forzada a la ruta de código BIFF. Puntos de entrada:
TXLSXWorkbook, TXLSXWorksheet, TXLSXCell
|
Ambas fachadas comparten el mismo motor de fórmulas, la misma capa de soporte Unicode y el mismo flujo de exportación
Consulte Descripción General de la Fachada XLSX para conocer la jerarquía de clases completa expuesta por
lxHandleX
Inicio Rápido
Los siguientes fragmentos muestran el código mínimo para crear un libro de trabajo con una hoja de trabajo y escribir
un valor en una celda.
XLS Clásico (lxHandle)
uses lxHandle;
var
Book: IXLSWorkbook;
ws: TXLSWorksheet;
begin
Book := TXLSWorkbook.Create;
// Agregar una hoja de trabajo y asignarle un nombre
ws := Book.Sheets.Add;
ws.Name := 'Sheet1';
// Escribir valores en celdas usando notación A1
ws.Range['A1'].Value := 'Hello';
ws.Range['B1'].Value := 42;
ws.Range['C1'].Formula := '=B1*2';
// Aplicar formato básico
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');
// Escribir un valor de texto y uno numérico
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;
// Aplicar un formato de número de moneda
cell := ws.Cells[2, 2];
cell.NumberFormat := '$#,##0.00';
Book.SaveAs('output.xlsx');
finally
Book.Free;
end;
end;
Para un recorrido más completo que abarca ambas fachadas en un único proyecto de demostración, consulte
Demo del Recorrido por la API
Características
Entrada/Salida de Archivos y Soporte de Streams
Lea archivos de Excel existentes, escriba archivos de Excel nuevos o existentes, gestione la protección con contraseña
de XLS clásico y los flujos de guardado cifrado de XLSX, y liste rápidamente los nombres de hojas de archivos XLS y XLSX
o streams sin cargar el libro de trabajo completo. Abrir un CSV como libro de trabajo está soportado mediante
IXLSWorkbook.OpenCSV
Valores de Celda y Fórmulas
Lea y escriba valores de celda de todos los tipos nativos de Excel: número, cadena de texto, fecha/hora, booleano y fórmula
El motor de cálculo integrado evalúa fórmulas en libros de trabajo XLS clásicos y XLSX, con soporte para:
- Funciones de texto (
LEFT,MID,TRIM,SUBSTITUTE, …) - Funciones de fecha y días laborables (
DATE,NETWORKDAYS,WORKDAY, …) - Funciones de ingeniería y conversión de base (
BIN2DEC,HEX2DEC, …) - Funciones bit a bit (
BITAND,BITOR,BITXOR, …) - Funciones estadísticas y de agregación (
AVERAGE,SUMIF,COUNTIFS, …) - Funciones matemáticas (
ROUND,MOD,POWER, …)
Un callback
OnUserFunction permite manejar funciones de hoja de trabajo personalizadas o no soportadas en tiempo de ejecución
Consulte Callback OnUserFunction para la firma y ejemplos

Formato de Celdas
Acceso completo a los atributos de apariencia de las celdas:
- Fuentes — nombre, tamaño, color (RGB o color de tema + tint), negrita, cursiva, subrayado, tachado, superíndice, subíndice, sombra y contorno
- Alineación — alineación horizontal y vertical, orientación del texto (ángulo), nivel de sangría, ajuste de texto, reducir para ajustar y orden de lectura (RTL/LTR)
- Bordes — los cuatro lados y diagonales, estilo de línea, grosor y color RGB / de tema
- Interior (relleno) — relleno sólido, rellenos de patrón, colores de primer plano y fondo incluyendo color de tema con TintAndShade
- Formatos de número — cadenas de formato integradas y personalizadas para fecha, hora, moneda, porcentaje y notación científica
- Comentarios / anotaciones — agregar, leer y dar estilo a los comentarios de celda
Operaciones de Rango
IXLSRange (fachada clásica) y TXLSXRange (fachada XLSX) ofrecen un amplio conjunto de
operaciones de rango:
- Combinar y separar celdas; acceder al área combinada de cualquier celda
- Copiar, mover, insertar y eliminar rangos con control de dirección de desplazamiento
- Agrupar y desagrupar filas o columnas para vistas de esquema/contraer
- Ajustar automáticamente el alto de filas y el ancho de columnas al contenido de las celdas
- Aplicar estilos de celda con nombre integrados (
ApplyBuiltinStyle) - Selecciones de múltiples áreas (
TXLSWorksheet.SelectAreas) - Callback de iteración ForEachCell para procesamiento por lotes de celdas
Características de Hoja de Trabajo
El control a nivel de hoja de trabajo incluye:
- Nombre de hoja, color de pestaña, visibilidad (oculta / muy oculta) y navegación basada en índice
- Protección de hoja con granularidad por permiso; protección a nivel de libro de trabajo
- Inmovilizar paneles, dividir paneles y posición de desplazamiento
- Rangos de AutoFiltro con criterios; reglas de validación de datos de lista
- Formato condicional: escalas de color (2 y 3 colores), barras de datos y conjuntos de íconos
- Buscar y reemplazar texto en una hoja de trabajo
- Opciones de vista: color de líneas de cuadrícula, modo de mostrar fórmulas, mostrar ceros, mostrar encabezados, mostrar de derecha a izquierda, mostrar símbolos de esquema y nivel de zoom
- Tablas estructuradas (
TXLSTable/TXLSXTable): agregar, acceder y dar estilo a tablas de Excel con filas de encabezado y filas alternas - Gráficos: agregar hojas de gráficos y gráficos incrustados mediante
TXLSWorksheetsAddChartSheetyTXLSXChart
Hipervínculos y Rangos con Nombre
Agregue y lea hipervínculos (URL, mailto y referencias de celda dentro del libro) mediante
IXLSHyperLinks. Defina y resuelva rangos con nombre en el ámbito del libro de trabajo y de la hoja de trabajo mediante
IXLSNames / TXLSXDefinedNames. Los rangos con nombre pueden usarse en fórmulas y
resolverse de vuelta a un rango de celdas mediante RefersToRange
Imágenes y Formas
Inserte imágenes raster (BMP, JPG, PNG, GIF) en hojas de trabajo mediante
TXLSShapes.AddPicture / TXLSXWorksheet.AddImage. Cree cuadros de texto independientes
en XLS clásico mediante TXLSShapes.AddTextBox. Preserve las reglas de conector y solucionador de OfficeArt creadas en Excel
en dibujos BIFF8, y exponga las opciones FOPT de forma sin procesar mediante
TXLSShape.OfficeArtOptions para flujos de trabajo de dibujo avanzados
Configuración de Página e Impresión
Acceso completo al diseño de impresión mediante
IXLSPageSetup:
- Tamaño de papel (A4, Carta, Legal y muchos otros; consulte PaperSize)
- Orientación (vertical / horizontal), márgenes, centrar horizontal y verticalmente
- Cadenas de encabezado y pie de página con códigos de formato de Excel (negrita, cursiva, número de página, fecha, etc.; consulte Códigos de formato de encabezado/pie de página)
- Saltos de página manuales horizontales y verticales
- Escala para ajustar a páginas; porcentaje de zoom; área de impresión; títulos de impresión (repetir filas / columnas)
- Calidad de borrador; blanco y negro; imprimir líneas de cuadrícula; imprimir encabezados; imprimir notas
Formatos de Exportación
Exporte libros de trabajo completos, hojas de trabajo individuales o rangos de celdas arbitrarios a:
- HTML — documento completo o un fragmento de tabla en línea para vista previa o flujos de trabajo de correo electrónico;
configurable mediante
TXLSHTMLExportyTXLSXHtmlExportOptions - RTF — texto enriquecido para importación en procesadores de texto
- CSV — valores separados por comas con delimitador y codificación configurables
- TSV — valores separados por tabulaciones
- ODS — OpenDocument Spreadsheet mediante la fachada
lxHandleX
Exportación de Base de Datos y Grilla
Exporte cualquier conjunto de datos compatible con TDataSet o un TDBGrid directamente a Excel, HTML o RTF usando los componentes
TDataToXLS o
TGridToXLS
Ambos componentes disparan los eventos AfterCell, AfterRow, AfterTitle y
AfterGroup para un control detallado de la salida, y admiten campos de agrupación de múltiples niveles
Preservación del Proyecto VBA
HotXLS preserva los payloads del proyecto VBA al hacer round-trip de libros con macros habilitadas. La inspección
de módulos en modo de solo lectura está disponible mediante
TXLSVBAProject y TXLSVBAModule
Use IXLSWorkbook.HasVBAProject para detectar un payload y
LoadVBAProjectFromFile / SaveVBAProjectToFile para transferirlo entre archivos
Unicode y Texto Internacional
Todo el manejo de cadenas es Unicode nativo. HotXLS lee y escribe archivos de Excel creados en cualquier idioma,
incluyendo CJK, árabe, hebreo, tailandés y otros sistemas de escritura, con soporte correcto de texto bidireccional
y orden de lectura

Tablas Dinámicas (XLS Clásico)
Cree tablas dinámicas desde un rango de origen con
TXLSWorksheet.AddPivotTable, configure la ubicación de campos y los formatos de número de campos de datos, e
inspeccione el modelo de tabla dinámica mediante TXLSWorksheet.PivotTables
Consulte API de tablas dinámicas XLS clásico para detalles sobre campos y filtros
Ventajas
| No Office dependency | Lee y escribe archivos XLS y XLSX directamente a nivel binario. No es necesario tener instalado, licenciado ni en ejecución Microsoft Excel u Office. Esto elimina la sobrecarga de automatización COM/OLE, evita las restricciones de subprocesos impuestas por la interoperabilidad con Office y permite usar HotXLS en contextos de servidor y servicios donde una instalación de escritorio de Office no es práctica |
| High performance | Los analizadores BIFF8 y OOXML están escritos en Object Pascal nativo sin asignación intermedia de DOM XML en la ruta crítica. Los libros de trabajo de gran tamaño con cientos de miles de filas pueden leerse y escribirse con un pico de memoria bajo. La deduplicación de cadenas compartidas y la compresión de fórmulas compartidas se aplican automáticamente para mantener los tamaños de archivo pequeños |
| OLE migration path | La superficie de la API de la fachada clásica (libro de trabajo, hoja de trabajo, rango, fuente, bordes, interior, configuración de página) refleja de cerca el modelo de objetos de Excel familiar de la Automatización OLE. Esto hace que migrar proyectos basados en OLE sea sencillo: reemplace las llamadas COM por llamadas a HotXLS, elimine la dependencia de Office y obtenga rendimiento nativo |
| Dual-facade design |
El código XLS heredado continúa compilando y ejecutándose sin cambios con lxHandle, mientras que el nuevo código XLSX
usa la fachada más rica lxHandleX. Migrar un formato de archivo a la vez es seguro e incremental
|
| Formula engine included |
Un motor de cálculo multipaso integrado maneja las funciones de hoja de trabajo más comunes sin necesidad de
que Excel recalcule al abrir. Las funciones personalizadas se gestionan mediante el callback OnUserFunction
|
| Easy to use |
Los componentes Delphi de tipo drop-in (TDataToXLS, TGridToXLS) no requieren código para
las tareas de exportación más comunes. La API de rango fluida admite notación A1, notación R1C1 e indexación de
filas/columnas basada en cero
|
| Thread-safe file I/O |
Dado que no hay un proceso de Office compartido, múltiples instancias de TXLSXWorkbook pueden
crearse y guardarse de forma concurrente en subprocesos independientes sin sincronización, lo que hace que HotXLS
sea adecuado para servidores de generación de reportes con múltiples subprocesos
|
Compatibilidad
HotXLS es compatible con las siguientes versiones de 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 bits y 64 bits |
| Excel file formats | XLS (BIFF8, Excel 97–2003), XLSX (OOXML, Excel 2007+), ODS (OpenDocument 1.2) |
| Export-only formats | HTML, RTF, CSV, TSV |
Véase También
- Descripción General de la Fachada XLSX (lxHandleX) — jerarquía de clases completa y miembros de API específicos de XLSX/ODS
- Demo del Recorrido por la API — primera demostración a ejecutar al aprender HotXLS desde cero
- IXLSWorkbook — referencia de la interfaz del libro de trabajo XLS clásico
- TXLSWorksheet — referencia de la clase de hoja de trabajo XLS clásico
- IXLSRange — interfaz de rango: acceso a celdas, formato y operaciones
- TXLSXWorkbook — referencia de la clase de libro de trabajo XLSX
- TXLSXWorksheet — referencia de la clase de hoja de trabajo XLSX
- TGridToXLS — componente drop-in para exportar DBGrid a Excel
- TDataToXLS — componente drop-in para exportar conjunto de datos a Excel
- Callback OnUserFunction — punto de extensión para funciones de hoja de trabajo personalizadas
- Modelo de color XLS clásico — fundamento del diseño de color basado en paleta y color de tema
- Miembros adicionales de la API XLS clásico — propiedades de cálculo, propiedades de documento, tablas dinámicas y más
- Ejemplos — descripción general de los proyectos de muestra
- Muestra de Orden de Compra — ejemplo completo de creación de XLS con código fuente
