Siamo felici di annunciare il rilascio di GroupDocs.Merger for .NET v26.9, disponibile a partire da settembre 2026. Questa versione introduce l’unione riga per riga dei fogli di calcolo, migliora la selezione delle pagine TIFF tramite PageBuilder, potenzia la gestione delle dimensioni dell’anteprima, risolve problemi di concorrenza con l’output Visio e DOC, e sostituisce diverse modalità di errore silenzioso con eccezioni chiare, rendendo l’API più robusta e prevedibile.
Cosa c’è di nuovo in questa versione
- [Funzionalità] Unire le righe di Excel da più file in un unico foglio (MERGERNET-2198)
- [Funzionalità] Applicare la selezione di pagine di PageBuilder al primo documento TIFF (MERGERNET-1372)
- [Miglioramento] Generare un’eccezione quando SetLicense non riesce a trovare il file di licenza (MERGERNET-2183)
- [Miglioramento] Rifiutare un flusso di licenza vuoto in SetLicense (MERGERNET-2184)
- [Miglioramento] Generare un’eccezione chiara quando si unisce un file immagine o audio in un formato non supportato (MERGERNET-2190)
- [Miglioramento] Rimuovere System.Drawing.Common dai pacchetti cross‑platform e segnalare chiaramente le dipendenze mancanti (MERGERNET-2202)
- [Bug] Chiudere il file sorgente dopo che Merger apre o unisce un documento per percorso (MERGERNET-2187)
- [Bug] Chiamare la factory di stream una sola volta durante la costruzione di Merger (MERGERNET-2189)
- [Bug] Correggere l’output DOC corrotto quando si uniscono documenti PDF o XPS in DOC da più thread (MERGERNET-2192)
- [Bug] Applicare una modifica di orientamento della pagina a ogni pagina quando non sono specificati numeri di pagina (MERGERNET-2194)
- [Bug] Rispettare la larghezza e l’altezza di anteprima richieste in ogni famiglia di formati di documento (MERGERNET-2196)
- [Bug] Rifiutare ExtractPages e RemovePages chiamati senza numeri di pagina invece di produrre silenziosamente un documento vuoto o invariato (MERGERNET-2197)
- [Bug] Correggere i documenti Visio che falliscono intermittentemente con ArgumentNullException trueTypeFont quando elaborati in concorrenza (MERGERNET-2199)
- [Bug] Correggere i portfolio PDF che falliscono con NullReferenceException quando un file incorporato non ha data di modifica (MERGERNET-2200)
Modifiche all’API pubblica
1. Unione di fogli di calcolo — modalità riga per riga (nuova API)
Nuovi tipi pubblici nello spazio dei nomi GroupDocs.Merger.Domain.Options:
| Tipo | Descrizione |
|---|---|
| SpreadsheetJoinOptions | Opzioni di unione per fogli di calcolo, derivata da PageJoinOptions. Proprietà: Mode, SkipRows, SheetMatching. |
| SpreadsheetJoinMode | Worksheets (predefinito) aggiunge i fogli del file unito come fogli di lavoro separati, come prima. Rows aggiunge le righe di ogni file unito sotto l’ultima riga contenente dati del foglio corrispondente del risultato. |
| SpreadsheetSheetMatching | ByIndex (predefinito) aggiunge il foglio 2 al foglio 2, il foglio 3 al foglio 3, ecc.; FirstSheetOnly aggiunge solo il primo foglio di ogni file unito. |
SkipRowssalta le prime N righe di ogni file unito, ad esempio una riga di intestazione. Il primo documento è sempre preso per intero.SkipRowseSheetMatchingnon hanno effetto in modalitàWorksheets.- Formati supportati: XLSX, XLS, XLSM, XLSB, XLTX, XLTM, XLT, XLAM e ODS.
- Trasferiti: valori delle celle, formule (riferimenti relativi adeguati), stili, celle unite e altezze delle righe. Non trasferiti: grafici, immagini, tabelle pivot, tabelle, formattazione condizionale e convalida dei dati.
- Un valore negativo per
SkipRowsgeneraGroupDocsMergerException(“Il numero di righe da saltare non può essere negativo.”). - Superare i limiti di righe (65 536 per XLS/XLT, 1 048 576 per gli altri) genera
GroupDocsMergerException. ApplyPageBuildergeneraGroupDocsMergerExceptionmentre un foglio di calcolo unito in modalitàRowsè in sospeso.
2. TIFF — PageBuilder applica la selezione di pagine del primo documento
Nessuna modifica all’API. CreatePageBuilder e ApplyPageBuilder ora applicano le pagine selezionate dal primo documento TIFF; in precedenza tutte le pagine del primo documento erano sempre incluse. Le unioni che non utilizzano PageBuilder producono lo stesso risultato di prima.
Dopo un’unione con ImageJoinOptions, CreatePageBuilder e ApplyPageBuilder ora generano GroupDocsMergerException, perché le immagini unite sono composte in un unico layout anziché in una sequenza di pagine.
3. Licenze — SetLicense non fallisce più silenziosamente
License.SetLicense(string licensePath)generaInvalidOperationException(“License not found: …”) quando il file di licenza non può essere trovato.License.SetLicense(Stream licenseStream)generaArgumentNullExceptionper un flusso vuoto.
4. Operazioni di pagina con un elenco di pagine vuoto
ExtractPageseRemovePageschiamati senza numeri di pagina ora generanoGroupDocsMergerException(“Non ci sono numeri di pagina da estrarre.” / “Non ci sono numeri di pagina da rimuovere.”).ChangeOrientationchiamato senza numeri di pagina ora cambia l’orientamento di ogni pagina per documenti PDF, XPS, di elaborazione testi, fogli di calcolo e Visio.
5. Dimensione dell’anteprima
GeneratePreview ora ridimensiona ogni immagine di pagina alle Width e Height richieste — allungata esattamente a quelle dimensioni quando entrambe sono specificate. Un valore negativo per Width o Height ora genera GroupDocsMergerException.
6. System.Drawing.Common e dipendenze mancanti
- I pacchetti cross‑platform (
GroupDocs.Merger.Net60,GroupDocs.Merger.Net80,GroupDocs.Merger.Net100) non dipendono più daSystem.Drawing.Common. - Le dipendenze di runtime mancanti ora generano
MissingDependencyException, indicando il componente mancante e le istruzioni di installazione.
7. Unire immagini e audio in formati non supportati
Unire un file immagine o audio in un formato di documento non supportato ora genera FileTypeNotSupportedException (“Unire ‘…’ in ‘…’ non è supportato”).
Nuove funzionalità
- Unione di fogli di calcolo riga per riga: le righe di diversi fogli di calcolo possono ora essere aggiunte a un unico foglio anziché essere inserite come fogli di lavoro separati, con opzioni per saltare le righe di intestazione e abbinare i fogli per posizione.
- PageBuilder per documenti TIFF: una selezione di pagine effettuata con
PageBuilderè ora applicata anche al primo documento TIFF — in precedenza tutte le sue pagine erano sempre incluse. - Dimensioni di anteprima accurate:
GeneratePreviewora restituisce immagini alleWidtheHeightrichieste per ogni famiglia di formati di documento. - Correzioni di concorrenza: l’output Visio e DOC non fallisce più intermittentemente quando elaborato da più thread.
- Gestione delle risorse: i documenti aperti o uniti per percorso file non mantengono più il file sorgente aperto; le factory di stream sono chiamate esattamente una volta.
- Errori più chiari: diverse operazioni che prima fallivano silenziosamente ora generano eccezioni descrittive.
Esempio di codice
using GroupDocs.Merger;
using GroupDocs.Merger.Domain.Options;
using (var merger = new Merger("january.xlsx"))
{
var options = new SpreadsheetJoinOptions
{
Mode = SpreadsheetJoinMode.Rows, // append rows into the existing sheets
SkipRows = 1 // skip the header row of each joined file
};
merger.Join("february.xlsx", options);
merger.Join("march.xlsx", options);
merger.Save("q1.xlsx");
}
Come ottenere l’aggiornamento
NuGet
- Package: GroupDocs.Merger 26.9.0
- Install command:
dotnet add package GroupDocs.Merger --version 26.9.0