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 SetLicense no 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.Common de 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 ExtractPages y RemovePages llamados 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 ArgumentNullException trueTypeFont cuando se procesaban concurrentemente (MERGERNET-2199)
  • [Bug] Corregir carteras PDF que fallaban con NullReferenceException cuando 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.
  • SkipRows omite las primeras N filas de cada archivo unido, por ejemplo, una fila de encabezado. El primer documento siempre se toma completo. SkipRows y SheetMatching no tienen efecto en el modo Worksheets.
  • 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 SkipRows negativo lanza GroupDocsMergerException (“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.
  • ApplyPageBuilder lanza GroupDocsMergerException mientras una hoja de cálculo unida en modo Rows está 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) lanza InvalidOperationException (“License not found: …”) cuando no se encuentra el archivo de licencia.
  • License.SetLicense(Stream licenseStream) lanza ArgumentNullException para un flujo vacío.

4. Operaciones de página con una lista de páginas vacía

  • ExtractPages y RemovePages llamados sin números de página ahora lanzan GroupDocsMergerException (“There are no page numbers to extract.” / “There are no page numbers to remove.”).
  • ChangeOrientation llamado 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 de System.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 PageBuilder ahora se aplica también al primer documento TIFF — antes siempre se incluían todas sus páginas.
  • Dimensiones de vista previa precisas: GeneratePreview ahora devuelve imágenes con el Width y Height solicitados 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

Descarga directa

Recursos