אנחנו שמחים להודיע על השחרור של GroupDocs.Merger for .NET v26.9, זמין החל מ-ספטמבר 2026. שחרור זה מציג חיבור גיליונות אלקטרוניים לפי שורות, משפר את בחירת העמודים בקבצי TIFF באמצעות PageBuilder, משפר את טיפול בממדי תצוגה מקדימה, פותר בעיות קונקורנטיות בפלט של Visio ו‑DOC, ומחליף מספר מצבי כשל שקטים בחריגות ברורות — מה שהופך את ה‑API ליציב וניתן לחיזוי יותר.
מה חדש בשחרור זה
- [תכונה] מיזוג שורות Excel ממספר קבצים לגיליון יחיד (MERGERNET-2198)
- [תכונה] החלת בחירת העמודים של
PageBuilderעל קובץ ה‑TIFF הראשון (MERGERNET-1372) - [שיפור] זריקת חריגה כאשר
SetLicenseאינו מצליח למצוא את קובץ הרישיון (MERGERNET-2183) - [שיפור] דחיית זרם רישיון ריק ב‑
SetLicense(MERGERNET-2184) - [שיפור] זריקת חריגה ברורה כאשר מצרפים קובץ תמונה או אודיו לפורמט שאינו נתמך (MERGERNET-2190)
- [שיפור] הסרת
System.Drawing.Commonמהחבילות חוצות‑פלטפורמה ודיווח ברור על תלות חסרה (MERGERNET-2202) - [באג] סגירת קובץ המקור לאחר ש‑Merger פותח או מצרף מסמך לפי נתיב (MERGERNET-2187)
- [באג] קריאת מפעל הזרמים רק פעם אחת בעת בניית Merger (MERGERNET-2189)
- [באג] תיקון פלט DOC פגום כאשר מצרפים מסמכי PDF או XPS ל‑DOC ממספר חוטים (MERGERNET-2192)
- [באג] החלת שינוי כיוון עמוד על כל העמודים כאשר לא צוינו מספרי עמודים (MERGERNET-2194)
- [באג] כיבוד רוחב וגובה התצוגה המקדימה המבוקשים בכל משפחת פורמט מסמכים (MERGERNET-2196)
- [באג] דחיית
ExtractPagesו‑RemovePagesכאשר נקראו ללא מספרי עמודים במקום לייצר מסמך ריק או ללא שינוי (MERGERNET-2197) - [באג] תיקון כשל מסמכי Visio באופן אקראי עם
ArgumentNullExceptionעבור trueTypeFont כאשר מעובדים במקביל (MERGERNET-2199) - [באג] תיקון כשל תיקיות PDF עם
NullReferenceExceptionכאשר קובץ משולב חסר תאריך שינוי (MERGERNET-2200)
שינויי API ציבוריים
1. חיבור גיליונות אלקטרוניים — מצב שורות (API חדש)
סוגים ציבוריים חדשים במרחב השמות GroupDocs.Merger.Domain.Options:
| סוג | תיאור |
|---|---|
| SpreadsheetJoinOptions | אפשרויות חיבור לגיליונות אלקטרוניים, נגזרות מ‑PageJoinOptions. מאפיינים: Mode, SkipRows, SheetMatching. |
| SpreadsheetJoinMode | Worksheets (ברירת מחדל) מוסיף את הגיליונות של הקובץ המצורף כגיליונות נפרדים, כפי שהיה לפני. Rows מצרף את השורות של כל קובץ מצורף מתחת לשורה האחרונה המכילה נתונים בגיליון המתאים בתוצאה. |
| SpreadsheetSheetMatching | ByIndex (ברירת מחדל) מצרף גיליון 2 לגיליון 2, גיליון 3 לגיליון 3 וכו׳; FirstSheetOnly מצרף רק את הגיליון הראשון של כל קובץ מצורף. |
SkipRowsמדלג על N השורות הראשונות של כל קובץ מצורף, לדוגמה שורת כותרת. המסמך הראשון נלקח תמיד במלואו.SkipRowsו‑SheetMatchingאינם משפיעים במצבWorksheets.- פורמטים נתמכים: XLSX, XLS, XLSM, XLSB, XLTX, XLTM, XLT, XLAM ו‑ODS.
- מועברים: ערכי תאים, נוסחאות (הפניות יחסיות מותאמות), סגנונות, תאים ממוזגים וגבהי שורות. לא מועברים: תרשימים, תמונות, טבלאות ציר, טבלאות, עיצוב מותנה ואימות נתונים.
SkipRowsשלילי גורם לזריקתGroupDocsMergerException(“The count of rows to skip can not be negative.”).- חריגה על גבול מספר השורות (65,536 עבור XLS/XLT, 1,048,576 עבור אחרים) גורמת ל‑
GroupDocsMergerException. ApplyPageBuilderזורקGroupDocsMergerExceptionכאשר גיליון אלקטרוני במצבRowsממתין.
2. TIFF — PageBuilder מחיל את בחירת העמודים של המסמך הראשון
אין שינוי ב‑API. CreatePageBuilder ו‑ApplyPageBuilder כעת מחילים את העמודים שנבחרו מה‑TIFF הראשון; בעבר כל העמודים של המסמך הראשון כללו תמיד. חיבורים שלא משתמשים ב‑PageBuilder מניבים את אותו תוצאה כמו לפני.
לאחר חיבור עם ImageJoinOptions, CreatePageBuilder ו‑ApplyPageBuilder כעת זורקים GroupDocsMergerException, מכיוון שתמונות מצורפות מורכבות בפריסה אחת ולא ברצף עמודים.
3. רישוי — SetLicense כבר לא נכשל בשקט
License.SetLicense(string licensePath)זורקInvalidOperationException(“License not found: …”) כאשר קובץ הרישיון אינו נמצא.License.SetLicense(Stream licenseStream)זורקArgumentNullExceptionעבור זרם ריק.
4. פעולות עמוד עם רשימת עמודים ריקה
ExtractPagesו‑RemovePagesשנקראו ללא מספרי עמודים כעת זורקיםGroupDocsMergerException(“There are no page numbers to extract.” / “There are no page numbers to remove.”).ChangeOrientationשנקרא ללא מספרי עמודים כעת משנה את הכיוון של כל העמודים עבור מסמכי PDF, XPS, Word processing, spreadsheet ו‑Visio.
5. גודל תצוגה מקדימה
GeneratePreview כעת משנה את גודל כל תמונת עמוד ל‑Width ו‑Height המבוקשים — מתיחה בדיוק לגודל זה כאשר שני הערכים ניתנים. Width או Height שלילי גורמים לזריקת GroupDocsMergerException.
6. System.Drawing.Common ותלותים חסרים
- חבילות חוצות‑פלטפורמה (
GroupDocs.Merger.Net60,GroupDocs.Merger.Net80,GroupDocs.Merger.Net100) אינן תלויות יותר ב‑System.Drawing.Common. - תלותי זמן ריצה חסרים כעת זורקים
MissingDependencyException, עם שם הרכיב החסר והוראות התקנה.
7. חיבור תמונות וקבצי אודיו לפורמטים שאינם נתמכים
חיבור קובץ תמונה או אודיו לפורמט מסמך שאינו נתמך כעת זורק FileTypeNotSupportedException (“Joining ‘…’ into ‘…’ is not supported”).
תכונות חדשות
- חיבור גיליונות אלקטרוניים לפי שורות: ניתן כעת לצרף שורות ממספר גיליונות אלקטרוניים לגיליון יחיד במקום להוסיף אותם כגיליונות נפרדים, עם אפשרות לדלג על שורות כותרת ולתאם גיליונות לפי מיקום.
PageBuilderלמסמכי TIFF: בחירת עמודים שנעשית עםPageBuilderמוחלת כעת גם על קובץ ה‑TIFF הראשון — בעבר כל העמודים שלו כללו תמיד.- ממדי תצוגה מקדימה מדויקים:
GeneratePreviewמחזיר כעת תמונות בממדים המבוקשים (Widthו‑Height) עבור כל משפחת פורמט מסמכים. - תיקוני קונקורנטיות: פלט Visio ו‑DOC אינם נכשלים יותר באופן אקראי כאשר מעובדים ממספר חוטים.
- ניהול משאבים: מסמכים שנפתחים או מצורפים לפי נתיב קובץ אינם משאירים את קובץ המקור פתוח; מפעלי הזרמים נקראים בדיוק פעם אחת.
- שגיאות ברורות יותר: מספר פעולות שכשלו בשקט בעבר כעת זורקות חריגות תיאוריות.
דוגמת קוד
using GroupDocs.Merger;
using GroupDocs.Merger.Domain.Options;
using (var merger = new Merger("january.xlsx"))
{
var options = new SpreadsheetJoinOptions
{
Mode = SpreadsheetJoinMode.Rows, // מצרף שורות לגיליונות הקיימים
SkipRows = 1 // מדלג על שורת הכותרת של כל קובץ מצורף
};
merger.Join("february.xlsx", options);
merger.Join("march.xlsx", options);
merger.Save("q1.xlsx");
}
איך לקבל את העדכון
NuGet
- חבילה: GroupDocs.Merger 26.9.0
- פקודת התקנה:
dotnet add package GroupDocs.Merger --version 26.9.0