Visión general
![]() |
La biblioteca de lectura/escritura de Excel HotXLS es un componente de lectura y escritura de Excel de alto rendimiento para Delphi y C++Builder
Puede 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 máquina
HotXLS está escrito completamente en Object Pascal. Lee y escribe archivos de Excel directamente
a nivel binario y OOXML, por lo que no hay sobrecarga de automatización COM/OLE y ninguna dependencia de la presencia
o licencia de Office. HotXLS es compatible con Delphi y C++Builder XE5 hasta 13 Florence
El formato de color clásico de XLS permanece intencionalmente basado en paleta. Consulte Modelo de color XLS clásico
para la decisión sobre ThemeColor / TintAndShade
|
Arquitectura de doble fachada
HotXLS expone dos unidades de fachada coexistentes para que el código XLS heredado y el nuevo código XLSX puedan coexistir
sin ninguna refactorización:
lxHandle |
Fachada principal para el formato Excel 97–2003 BIFF8 (.xls), además de exportación 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). Proporciona sus propios tipos de libros y hojas de cálculo para que el comportamiento específico de XLSX
no se agregue retroactivamente 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 compatibilidad Unicode y la misma canalización de exportación
Consulte Visión general de la fachada XLSX para ver 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 cálculo 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 cálculo y darle 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 una cadena y un valor 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 amplio que cubra ambas fachadas en un solo proyecto de demostración, consulte la
Demostración del tour de la API (API Tour Demo)
Características
Soporte de E/S de archivos y flujos
Lea archivos de Excel existentes, escriba archivos de Excel nuevos o existentes, maneje los flujos de trabajo de protección de contraseñas
de XLS clásicos y guardado cifrado de XLSX, y enumere rápidamente los nombres de las hojas a partir de archivos o flujos XLS y XLSX sin cargar
todo el libro de trabajo. Abrir un CSV como libro de trabajo es compatible a través de
IXLSWorkbook.OpenCSV
Valores de celdas y fórmulas
Lea y escriba valores de celdas de todos los tipos nativos de Excel: número, cadena, fecha/hora, booleano y fórmula
El motor de cálculo integrado evalúa fórmulas tanto en libros XLS clásicos como XLSX, soportando:
- Funciones de texto (
LEFT,MID,TRIM,SUBSTITUTE, …) - Funciones de fecha y días laborales (
DATE,NETWORKDAYS,WORKDAY, …) - Funciones de ingeniería y conversión de bases (
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, …)
Una devolución de llamada
OnUserFunction le permite manejar funciones de hoja de cálculo personalizadas o no compatibles
en tiempo de ejecución. Consulte Devolución de llamada 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 + matiz), 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 bordes 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, incluido el color de tema con TintAndShade
- Formatos numéricos — cadenas de formato integradas y personalizadas para fecha, hora, moneda, porcentaje y notación científica
- Comentarios / anotaciones — agregar, leer y dar estilo a comentarios de celdas
Operaciones de rango
IXLSRange (fachada clásica) y TXLSXRange (fachada XLSX) proporcionan 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 la dirección de desplazamiento
- Agrupar y desagrupar filas o columnas para vistas de esquema/contracción
- Ajuste automático (AutoFit) de la altura de la fila y el ancho de la columna al contenido de la celda
- Aplicar estilos de celda con nombre integrados (
ApplyBuiltinStyle) - Selecciones de áreas múltiples (
TXLSWorksheet.SelectAreas) - Devolución de llamada de iteración ForEachCell para el procesamiento por lotes de celdas
Características de la hoja de cálculo
El control a nivel de hoja de cálculo incluye:
- Nombre de la hoja, color de la pestaña, visibilidad (oculto / muy oculto) y navegación basada en índices
- Protección de la hoja con granularidad por permisos; protección a nivel de libro de trabajo
- Inmovilizar paneles, dividir paneles y posición de desplazamiento
- Rangos de AutoFilter 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 iconos
- Buscar texto y reemplazar texto en toda una hoja de cálculo
- Opciones de visualización: color de las líneas de cuadrícula, modo de visualización de fórmulas, visualización de ceros, visualización de encabezados, visualización de derecha a izquierda, visualización de símbolos de esquema y nivel de zoom
- Tablas estructuradas (
TXLSTable/TXLSXTable): agregue, acceda y diseñe tablas de Excel con filas de encabezado y filas con bandas - Gráficos: agregue hojas de gráficos y gráficos incrustados a través de
TXLSWorksheetsAddChartSheetyTXLSXChart
Hipervínculos y rangos con nombre
Agregue y lea hipervínculos (URL, mailto y referencias a celdas en el libro de trabajo) a través de
IXLSHyperLinks. Defina y resuelva rangos con nombre a nivel de libro de trabajo y hoja de cálculo a través de
IXLSNames / TXLSXDefinedNames. Los rangos con nombre se pueden usar en fórmulas y resolver en
un rango de celdas a través de RefersToRange
Imágenes y formas
Incruste imágenes rasterizadas (BMP, JPG, PNG, GIF) en hojas de cálculo a través de
TXLSShapes.AddPicture / TXLSXWorksheet.AddImage. Cree cuadros de texto independientes en XLS
clásico a través de TXLSShapes.AddTextBox. Preserve los conectores OfficeArt creados por Excel y las reglas
del solucionador en dibujos BIFF8, y exponga las opciones FOPT sin procesar de formas a través de
TXLSShape.OfficeArtOptions para flujos de trabajo de dibujo expertos
Configuración de página e impresión
Acceso completo al diseño de impresión a través de
IXLSPageSetup:
- Tamaño del papel (A4, Carta, Legal y muchos otros; consulte Tamaño de papel (PaperSize))
- Orientación (vertical / horizontal), márgenes, centrado horizontal / vertical
- 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 horizontales y verticales manuales
- Escalado para ajustar a las 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 cálculo 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; controlable a través de
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 a través de la fachada
lxHandleX
Exportación de bases de datos y cuadrículas
Exporte cualquier conjunto de datos compatible con TDataSet o un TDBGrid directamente a Excel, HTML o RTF utilizando
los componentes
TDataToXLS o
TGridToXLS
Ambos componentes disparan 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 de proyectos VBA
HotXLS conserva las cargas útiles de proyectos VBA cuando se leen y escriben libros de trabajo habilitados para macros. La inspección
de solo lectura del módulo está disponible a través de
TXLSVBAProject y TXLSVBAModule
Llame a IXLSWorkbook.HasVBAProject para detectar una carga útil y
LoadVBAProjectFromFile / SaveVBAProjectToFile para transferirla entre archivos
Unicode y texto internacional
Toda la manipulación de cadenas es nativa de Unicode. HotXLS lee y escribe archivos de Excel creados en cualquier idioma,
incluyendo CJK, árabe, hebreo, tailandés y otros scripts, con soporte correcto para texto bidireccional y orden de lectura

Tablas dinámicas (XLS clásico)
Cree tablas dinámicas a partir de un rango de origen con
TXLSWorksheet.AddPivotTable, configure la ubicación
de los campos y los formatos numéricos de los campos de datos, e inspeccione el modelo de tabla dinámica a través de TXLSWorksheet.PivotTables
Consulte API de tablas dinámicas XLS clásico para obtener 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 de Office y permite el uso de HotXLS en contextos de servicios y del lado del servidor 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 de DOM XML intermedia para la ruta crítica. Los libros de trabajo grandes con cientos de miles de filas se pueden leer y escribir con un bajo uso de memoria pico. La deduplicación de cadenas compartidas y la compresión de fórmulas compartidas se aplican automáticamente para mantener pequeño el tamaño del archivo |
| OLE migration path | La superficie de API de la fachada clásica (libro, hoja, 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 simplifica la migración de proyectos existentes basados en OLE: reemplace las llamadas COM con llamadas HotXLS, elimine la dependencia de Office y obtenga rendimiento nativo |
| Dual-facade design |
El código XLS antiguo continúa compilándose y ejecutándose sin cambios frente a lxHandle, mientras que el nuevo código XLSX utiliza la fachada más rica lxHandleX. La migración de un formato de archivo a la vez es segura e incremental
|
| Formula engine included |
Un motor de cálculo multipaso incorporado maneja las funciones de hoja de cálculo más comunes sin requerir que Excel vuelva a calcular al abrir. Las funciones personalizadas se manejan mediante la devolución de llamada OnUserFunction
|
| Easy to use |
Los componentes de Delphi directos (TDataToXLS, TGridToXLS) no requieren código para tareas comunes de exportación. La API de rango fluida admite la notación A1, la notación R1C1 y la indexación de filas/columnas basada en cero
|
| Thread-safe file I/O |
Debido a que no hay un proceso de Office compartido, se pueden crear y guardar múltiples instancias de TXLSXWorkbook simultáneamente en subprocesos independientes sin sincronización, lo que hace que HotXLS sea adecuado para servidores de generación de informes multiproceso
|
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 de 32 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 |
Consulte también
- Visión general de la fachada XLSX (lxHandleX) — jerarquía de clases completa y miembros de API específicos de XLSX/ODS
- Demostración del tour de la API (API Tour Demo) — primera demostración para ejecutar al aprender HotXLS desde cero
- IXLSWorkbook — referencia de interfaz del libro de trabajo XLS clásico
- TXLSWorksheet — referencia de clase de la hoja de cálculo XLS clásica
- IXLSRange — interfaz de rango: acceso a celdas, formato y operaciones
- TXLSXWorkbook — referencia de clase del libro de trabajo XLSX
- TXLSXWorksheet — referencia de clase de la hoja de cálculo XLSX
- TGridToXLS — componente de exportación directo de DBGrid a Excel
- TDataToXLS — componente de exportación directo de conjunto de datos a Excel
- Devolución de llamada OnUserFunction — punto de extensión de función de hoja de cálculo personalizada
- Modelo de color XLS clásico — justificación del diseño de colores y colores de tema basados en paleta
- Miembros de API adicionales de XLS clásico — propiedades de cálculo, propiedades de documento, tablas dinámicas y más
- Ejemplos — visión general de proyectos de muestra
- Ejemplo de orden de compra (Purchase Order) — ejemplo completo de creación de XLS con código fuente
