Estamos felices de anunciar la publicación de GroupDocs.Merger for .NET v26.9, disponible a partir de septiembre de 2026. Esta versión introduce la unión fila por fila de hojas de cálculo, mejora la selección de páginas TIFF mediante PageBuilder, optimiza el manejo de dimensiones de vista previa, resuelve problemas de concurrencia con la salida de Visio y DOC, y reemplaza varios modos de fallo silencioso con excepciones claras, haciendo que la API sea más robusta y predecible.
Novedades en esta versión
- [Feature] Unir filas de Excel de varios archivos en una sola hoja (MERGERNET-2198)
- [Feature] Aplicar la selección de páginas de PageBuilder al primer documento TIFF (MERGERNET-1372)
- [Improvement] Lanzar una excepción cuando
SetLicenseno puede encontrar el archivo de licencia (MERGERNET-2183) - [Improvement] Rechazar un flujo de licencia vacío en
SetLicense(MERGERNET-2184) - [Improvement] Lanzar una excepción clara al unir un archivo de imagen o audio en un formato no compatible (MERGERNET-2190)
- [Improvement] Eliminar
System.Drawing.Commonde los paquetes multiplataforma y reportar dependencias faltantes de forma clara (MERGERNET-2202) - [Bug] Cerrar el archivo fuente después de que Merger abra o una un documento por ruta (MERGERNET-2187)
- [Bug] Llamar al factoría de flujos solo una vez al construir Merger (MERGERNET-2189)
- [Bug] Corregir salida DOC corrupta al unir documentos PDF o XPS en DOC desde varios hilos (MERGERNET-2192)
- [Bug] Aplicar un cambio de orientación de página a cada página cuando no se especifican números de página (MERGERNET-2194)
- [Bug] Honrar el ancho y alto de vista previa solicitados en cada familia de formatos de documento (MERGERNET-2196)
- [Bug] Rechazar
ExtractPagesyRemovePagesllamados sin números de página en lugar de producir silenciosamente un documento vacío o sin cambios (MERGERNET-2197) - [Bug] Corregir documentos Visio que fallaban intermitentemente con
ArgumentNullExceptiontrueTypeFont cuando se procesaban concurrentemente (MERGERNET-2199) - [Bug] Corregir carteras PDF que fallaban con
NullReferenceExceptioncuando un archivo incrustado no tiene fecha de modificación (MERGERNET-2200)
Cambios en la API pública
1. Unión de hojas de cálculo — modo por filas (nueva API)
Nuevos tipos públicos en el espacio de nombres GroupDocs.Merger.Domain.Options:
| Tipo | Descripción |
|---|---|
| SpreadsheetJoinOptions | Opciones de unión para hojas de cálculo, derivadas de PageJoinOptions. Propiedades: Mode, SkipRows, SheetMatching. |
| SpreadsheetJoinMode | Worksheets (predeterminado) agrega las hojas del archivo unido como hojas de cálculo separadas, como antes. Rows agrega las filas de cada archivo unido debajo de la última fila con datos de la hoja coincidente del resultado. |
| SpreadsheetSheetMatching | ByIndex (predeterminado) agrega la hoja 2 a la hoja 2, la hoja 3 a la hoja 3, etc.; FirstSheetOnly agrega solo la primera hoja de cada archivo unido. |
SkipRowsomite las primeras N filas de cada archivo unido, por ejemplo, una fila de encabezado. El primer documento siempre se toma completo.SkipRowsySheetMatchingno tienen efecto en el modoWorksheets.- Formatos compatibles: XLSX, XLS, XLSM, XLSB, XLTX, XLTM, XLT, XLAM y ODS.
- Se conservan: valores de celdas, fórmulas (referencias relativas ajustadas), estilos, celdas combinadas y alturas de fila. No se conservan: gráficos, imágenes, tablas dinámicas, tablas, formato condicional y validación de datos.
- Un
SkipRowsnegativo lanzaGroupDocsMergerException(“The count of rows to skip can not be negative.”). - Superar los límites de filas (65 536 para XLS/XLT, 1 048 576 para los demás) lanza
GroupDocsMergerException. ApplyPageBuilderlanzaGroupDocsMergerExceptionmientras una hoja de cálculo unida en modoRowsestá pendiente.
2. TIFF — PageBuilder aplica la selección de páginas del primer documento
Sin cambios en la API. CreatePageBuilder y ApplyPageBuilder ahora aplican las páginas seleccionadas del primer documento TIFF; anteriormente siempre se incluían todas las páginas del primer documento. Las uniones que no usan PageBuilder producen el mismo resultado que antes.
Después de una unión con ImageJoinOptions, CreatePageBuilder y ApplyPageBuilder ahora lanzan GroupDocsMergerException, porque las imágenes unidas se componen en un solo diseño en lugar de una secuencia de páginas.
3. Licencias — SetLicense ya no falla silenciosamente
License.SetLicense(string licensePath)lanzaInvalidOperationException(“License not found: …”) cuando no se encuentra el archivo de licencia.License.SetLicense(Stream licenseStream)lanzaArgumentNullExceptionpara un flujo vacío.
4. Operaciones de página con una lista de páginas vacía
ExtractPagesyRemovePagesllamados sin números de página ahora lanzanGroupDocsMergerException(“There are no page numbers to extract.” / “There are no page numbers to remove.”).ChangeOrientationllamado sin números de página ahora cambia la orientación de todas las páginas para documentos PDF, XPS, de procesamiento de texto, hojas de cálculo y Visio.
5. Tamaño de vista previa
GeneratePreview ahora redimensiona cada imagen de página al Width y Height solicitados — estirada exactamente a ese tamaño cuando se proporcionan ambos. Un Width o Height negativo ahora lanza GroupDocsMergerException.
6. System.Drawing.Common y dependencias faltantes
- Los paquetes multiplataforma (
GroupDocs.Merger.Net60,GroupDocs.Merger.Net80,GroupDocs.Merger.Net100) ya no dependen deSystem.Drawing.Common. - Las dependencias de tiempo de ejecución faltantes ahora lanzan
MissingDependencyException, indicando el componente ausente y las instrucciones de instalación.
7. Unir imágenes y audio en formatos no compatibles
Unir un archivo de imagen o audio en un formato de documento no compatible ahora lanza FileTypeNotSupportedException (“Joining ‘…’ into ‘…’ is not supported”).
Nuevas características
- Unión de hojas de cálculo por filas: Las filas de varias hojas de cálculo ahora pueden agregarse en una sola hoja en lugar de añadirse como hojas de cálculo separadas, con opciones para omitir filas de encabezado y emparejar hojas por posición.
- PageBuilder para documentos TIFF: La selección de páginas realizada con
PageBuilderahora se aplica también al primer documento TIFF — antes siempre se incluían todas sus páginas. - Dimensiones de vista previa precisas:
GeneratePreviewahora devuelve imágenes con elWidthyHeightsolicitados para cada familia de formatos de documento. - Correcciones de concurrencia: La salida de Visio y DOC ya no falla intermitentemente cuando se procesa desde varios hilos.
- Manejo de recursos: Los documentos abiertos o unidos por ruta de archivo ya no mantienen el archivo fuente abierto; las factorías de flujos se llaman exactamente una vez.
- Errores más claros: Varias operaciones que antes fallaban silenciosamente ahora lanzan excepciones descriptivas.
Ejemplo de código
using GroupDocs.Merger;
using GroupDocs.Merger.Domain.Options;
using (var merger = new Merger("january.xlsx"))
{
var options = new SpreadsheetJoinOptions
{
Mode = SpreadsheetJoinMode.Rows, // agregar filas en las hojas existentes
SkipRows = 1 // omitir la fila de encabezado de cada archivo unido
};
merger.Join("february.xlsx", options);
merger.Join("march.xlsx", options);
merger.Save("q1.xlsx");
}
Cómo obtener la actualización
NuGet
- Paquete: GroupDocs.Merger 26.9.0
- Comando de instalación:
dotnet add package GroupDocs.Merger --version 26.9.0