Documentación HotXLS

Flujos de trabajo avanzados de libros

Esta guía reúne las API de nivel superior más útiles cuando un flujo de trabajo de libros va más allá de la lectura y escritura básicas de celdas

Salida PDF lista para imprimir

Las exportaciones PDF de libros, hojas y rangos XLS clásicos y XLSX modernos representan valores con formato, rellenos de celda, color y énfasis de fuente, alineación, bordes, líneas de cuadrícula opcionales, anchos de columna, alturas de fila, saltos de página manuales, títulos de impresión repetidos y encabezados y pies de página de tres partes

Sheet.PageSetup.PrintArea := 'A1:H80';
Sheet.PageSetup.PrintTitleRows := '$1:$3';
Sheet.PageSetup.RightHeader := 'Page &P of &N';
Sheet.HPageBreaks.Add(45);
Workbook.SaveAsPDF('report.pdf');

Los libros modernos ofrecen los mismos puntos de entrada directos mediante TXLSXWorkbook, TXLSXWorksheet y TXLSXRange

ModernSheet.PrintArea := '$A$1:$H$80';
ModernSheet.PrintTitleRows := '$1:$3';
ModernSheet.AddRowBreak(45);
ModernWorkbook.SaveAsPDF('modern-report.pdf');

El texto fuera de WinAnsi se escribe con una fuente CID TrueType incrustada y un mapa ToUnicode para que los lectores puedan representar y extraer texto Unicode

Establece TXLSPDFExport.UnicodeFontFile cuando un libro necesite una escritura concreta o una tipografía corporativa; de lo contrario, el exportador selecciona una fuente instalada adecuada cuando está disponible

Usa TXLSPaginationModel cuando la vista previa, el PDF y la salida personalizada deban compartir la misma geometría de papel, márgenes, escala de ajuste, saltos manuales, títulos repetidos, orden de páginas, encabezados, pies y anclajes de dibujo

Pages := Exporter.CreatePaginationModel(Workbook);
try
  Pages.SavePageAsMetafile(0, 'FirstPage.emf');
finally
  Pages.Free;
end;

Progreso, cancelación y diagnósticos

Usa OnProgressEx para las devoluciones de llamada de inicio, trabajo y fin, y establece su argumento de cancelación para anular una operación

Inspecciona Diagnostics o LastDiagnostic después de errores al guardar, abrir o recalcular, en lugar de depender solo de un valor numérico de retorno

Partes de paquetes OOXML no compatibles

TXLSXWorkbook.PreserveUnsupportedParts es true de forma predeterminada y conserva las partes personalizadas accesibles mediante relaciones desconocidas de raíz, libro, hoja o dibujo

UnsupportedPartCount y UnsupportedPartBytes informan del contenido conservado, mientras que ClearUnsupportedParts lo elimina intencionadamente antes de guardar

Intercambio enriquecido con el portapapeles

Llama a CopyToClipboard a nivel de rango para publicar texto tabular Unicode y CF_HTML, incluidos el formato mostrado, las fórmulas, las celdas combinadas, los vínculos y los delimitadores incrustados entrecomillados de forma segura

Edición del código fuente VBA

Después de cargar un proyecto VBA, actualiza SourceCode de un módulo existente y guarda el libro o el almacenamiento independiente

El escritor vuelve a comprimir solo el flujo de código fuente editado y conserva los prefijos de flujo y el contenido del proyecto que no se ha tocado

Controles de formulario clásicos

MacroName := Workbook.Names.Add('RunReport', '=0', False);
MacroName.IsMacro := True;
Button := Sheet.AddButton('Run report', 1, 2, 2, 5);
Button.MacroName := 'RunReport';
CheckBox := Sheet.AddCheckBox('Approved', 2, 2, 3, 5);
CheckBox.State := xcsMixed;
CheckBox.LinkedCell := 'Controls!$F$2';
RadioButton := Sheet.AddRadioButton('Primary', 4, 2, 5, 5);
RadioButton.FirstInGroup := True;
ComboBox := Sheet.AddComboBox(5, 2, 6, 5);
ComboBox.SourceRange := 'Controls!$A$1:$A$8';
ListBox := Sheet.AddListBox(8, 2, 12, 5);
ListBox.SourceRange := 'Controls!$A$1:$A$8';

Los envoltorios tipados conservan etiquetas, tipos de control, anclajes, estados de casilla, aspecto plano o 3D, vínculos de grupo de radio, enlaces de macro, celdas vinculadas, rangos de entrada, enumeración y eliminación a lo largo de los ciclos de apertura y guardado del XLS clásico

Parches de formato selectivos

Target.ApplyFormatPatch(Source, [xfpFont, xfpFill, xfpNumberFormat]);

Un rango de origen más pequeño se repite sobre un destino mayor, y el formato no seleccionado junto con todos los valores de destino permanece sin cambios

Exportación de conjuntos de datos maestro-detalle

Activa TDataToXLS.ReadDetailTables para exportar conjuntos de datos de detalle vinculados debajo de cada registro maestro y activa IndentDetailTables para añadir una columna de sangría por nivel de relación

WordArt

Shape := Sheet.AddWordArt('HotXLS', 'textArchUp', 2, 2, 6, 8);
Shape.TextColor := $FF00A060;
Shape.OutlineColor := $FF17365D;

El anclaje DrawingML completo sobrevive a posteriores ciclos de apertura y guardado mediante la ruta de conservación de dibujos sin procesar

Consulta Demo\Delphi\FeatureShowcase para ver un ejemplo ejecutable compacto que combina impresión PDF, controles de formulario, parches de formato y WordArt