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, TXLSXWorksheety 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
Use TXLSPaginationModel cuando la vista previa, el PDF y la salida personalizada deben compartir la misma geometría de papel, márgenes, escala de ajuste, saltos manuales, títulos repetidos, orden de páginas, encabezados, pies de página 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 enlaces 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 devueltos exponen etiquetas, tipos de control, anclajes, enumeración y eliminación
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