אנחנו שמחים להודיע על השחרור של 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

הורדה ישירה

משאבים