מיזוג וביטול מיזוג תאים הוא תכונה פשוטה ונפוצה של Microsoft Excel. מיזוג תאים עשוי להיות מועיל בתרחישים, לדוגמה, כאשר יש לך גליון עבודה עם מספר עמודות שחולקות את אותה כותרת. אתה יכול למזג את התאים מעל העמודות כדי לתת להם כותרת משותפת. במקרה שלא נדרשים עוד תאים ממוזגים, תוכל לבטל את מיזוגם באותה קלות. ייתכן שתצטרך לבצע משימות אלה בתוך יישומי C++ שלך. לשם כך, מאמר זה ילמד אותך כיצד למזג ולבטל מיזוג תאים בגיליונות עבודה של Excel באופן תכנותי באמצעות C++.

C++ API למיזוג וביטול מיזוג תאים

Aspose.Cells for C++ היא ספריית C++ מקורית המאפשרת לך ליצור, לקרוא ולשנות קבצי Excel מבלי לדרוש התקנה של Microsoft Excel. ה-API תומך גם במיזוג וביטול מיזוג של תאים בגיליון עבודה של Excel. אתה יכול להתקין את ה-API דרך NuGet או להוריד אותו ישירות מהקטע הורדות.

PM> Install-Package Aspose.Cells.Cpp

מיזוג תאים בגיליון עבודה של Excel באמצעות C++

בדוגמה זו, ניצור גליון עבודה ריק של Excel ונמזג כמה תאים על ידי ביצוע השלבים המפורטים להלן.

הקוד לדוגמה הבא מראה כיצד למזג תאים בגיליון עבודה של Excel באמצעות C++.

// נתיב ספריית פלט.
StringPtr outDir = new String("OutputDirectory\\");

// טען את קובץ הקלט של Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();

// גש לגליון העבודה הראשון בקובץ האקסל
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// צור אובייקט Cells או אחזר את כל התאים.
intrusive_ptr<ICells> cells = worksheet->GetICells();

// מיזוג תאים
cells->Merge(5, 2, 2, 3);

// הכניסו נתונים לתא
cells->GetObjectByIndex(5, 2)->PutValue((StringPtr)new String("This is a test value"));

// צור אובייקט בסגנון 
intrusive_ptr<IStyle> style = cells->GetICell(5, 2)->GetIStyle();

// צור אובייקט גופן
intrusive_ptr<Aspose::Cells::IFont> font = style->GetIFont();

// הגדר את השם
font->SetName(new String("Times New Roman"));

// הגדר את גודל הגופן
font->SetSize(18);

// הגדר את צבע הגופן
font->SetColor(Systems::Drawing::Color::GetCyan());

// הפוך את הטקסט למודגש
font->SetBold(true);

// הפוך את הטקסט לנטוי
font->SetItalic(true);

// הגדר את צבע החזית
style->SetForegroundColor(Systems::Drawing::Color::GetRed());

// הגדר את התבנית
style->SetPattern(BackgroundType_Solid);

// החל את הסגנון
cells->GetICell(5, 2)->SetIStyle(style);

// שמור את קובץ האקסל
workbook->Save(outDir->StringAppend(new String("MergeCells_out.xlsx")));
תמונה של קובץ הפלט של Excel שנוצר על ידי הקוד לדוגמה

תמונה של קובץ הפלט של Excel שנוצר על ידי הקוד לדוגמה

בטל מיזוג תאים בגיליון עבודה של Excel באמצעות C++

להלן השלבים לביטול מיזוג תאים בגליון עבודה של Excel.

הקוד לדוגמה הבא מדגים כיצד לבטל מיזוג תאים בגיליון עבודה של Excel באמצעות C++.

// נתיב ספריית המקור.
StringPtr srcDir = new String("SourceDirectory\\");

// נתיב ספריית פלט.
StringPtr outDir = new String("OutputDirectory\\");

// טען את קובץ הקלט של Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("SampleMergedCells.xlsx")));

// גש לגליון העבודה הראשון בקובץ האקסל
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// צור אובייקט Cells או אחזר את כל התאים.
intrusive_ptr<ICells> cells = worksheet->GetICells();

// בטל מיזוג תאים.
cells->UnMerge(5, 2, 2, 3);

// שמור את קובץ האקסל
workbook->Save(outDir->StringAppend(new String("UnmergeCells_out.xlsx")));
תמונה של קובץ הפלט של Excel שנוצר על ידי הקוד לדוגמה

תמונה של קובץ הפלט של Excel שנוצר על ידי הקוד לדוגמה

מיזוג טווח תאים בגיליון עבודה של Excel באמצעות C++

להלן השלבים למיזוג טווח של תאים בגיליון עבודה של Excel.

הקוד לדוגמה הבא מראה כיצד למזג טווח של תאים בגיליון עבודה של Excel באמצעות C++.

// נתיב ספריית פלט.
StringPtr outDir = new String("OutputDirectory\\");

// טען את קובץ הקלט של Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();

// גש לגליון העבודה הראשון בקובץ האקסל
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// הזן נתונים לתא A1.
worksheet->GetICells()->GetObjectByIndex(0, 0)->PutValue((StringPtr)new String("This is a test value"));

// צור טווח
intrusive_ptr<IRange> range = worksheet->GetICells()->CreateIRange(new String("A1:D4"));

// מיזוג טווח לתא בודד
range->Merge();

// שמור את קובץ האקסל
workbook->Save(outDir->StringAppend(new String("MergeRangeOfCells_out.xlsx")));
תמונה של קובץ הפלט של Excel שנוצר על ידי הקוד לדוגמה

תמונה של קובץ הפלט של Excel שנוצר על ידי הקוד לדוגמה

בטל מיזוג של טווח תאים בגיליון עבודה של Excel באמצעות C++

להלן השלבים לביטול מיזוג טווח של תאים בגליון עבודה של Excel.

הקוד לדוגמה הבא מראה כיצד לבטל מיזוג של טווח תאים בגיליון עבודה של Excel באמצעות C++.

// נתיב ספריית המקור.
StringPtr srcDir = new String("SourceDirectory\\");

// נתיב ספריית פלט.
StringPtr outDir = new String("OutputDirectory\\");

// טען את קובץ הקלט של Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("SampleMergedRangeOfCells.xlsx")));

// גש לגליון העבודה הראשון בקובץ האקסל
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// צור טווח
intrusive_ptr<IRange> range = worksheet->GetICells()->CreateIRange(new String("A1:D4"));

// בטל מיזוג טווח
range->UnMerge();

// שמור את קובץ האקסל
workbook->Save(outDir->StringAppend(new String("UnmergeRangeOfCells_out.xlsx")));
תמונה של קובץ הפלט של Excel שנוצר על ידי הקוד לדוגמה

תמונה של קובץ הפלט של Excel שנוצר על ידי הקוד לדוגמה

מיזוג תאים של טווח בעל שם בגיליון עבודה של Excel באמצעות C++

Aspose.Cells עבור C++ מספק לך גם את היכולת למזג את התאים של טווח בעל שם. כדי להשיג זאת, אנא בצע את השלבים המפורטים להלן.

הקוד לדוגמה הבא מדגים כיצד למזג את התאים של טווח בעל שם באמצעות C++.

// נתיב ספריית המקור.
StringPtr srcDir = new String("SourceDirectory\\");

// נתיב ספריית פלט.
StringPtr outDir = new String("OutputDirectory\\");

// טען את קובץ הקלט של Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("SampleMergedRangeOfCells.xlsx")));

// גש לגליון העבודה הראשון בקובץ האקסל
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// צור טווח
intrusive_ptr<IRange> range = worksheet->GetICells()->CreateIRange(new String("A1:D4"));

// הגדר את שם הטווח
range->SetName(new String("Named_Range"));

// הגדר אובייקט בסגנון
intrusive_ptr<IStyle> style = workbook->CreateIStyle();

// הגדר יישור אופקי
style->SetHorizontalAlignment(TextAlignmentType::TextAlignmentType_Center);

// צור אובייקט StyleFlag
intrusive_ptr<IStyleFlag> styleFlag = Factory::CreateIStyleFlag();

// הגדר יישור אופקי to true
styleFlag->SetHorizontalAlignment(true);

// החל את הסגנון על הטווח
range->ApplyIStyle(style, styleFlag);

// שים נתונים בטווח
range->GetObjectByIndex(0, 0)->PutValue((StringPtr)new String("This is a test value"));

// מיזוג טווח
range->Merge();

// שמור את קובץ האקסל
workbook->Save(outDir->StringAppend(new String("MergeNamedRange_out.xlsx")));
תמונה של קובץ הפלט של Excel שנוצר על ידי הקוד לדוגמה

תמונה של קובץ הפלט של Excel שנוצר על ידי הקוד לדוגמה

קבל רישיון חינם

אתה יכול לנסות את ה-API ללא מגבלות הערכה על ידי בקשת [רישיון זמני בחינם].30

סיכום

במאמר זה, למדת כיצד למזג ולבטל מיזוג תאים בגיליון עבודה של Excel באמצעות C++. יתר על כן, ראית כיצד למזג ולבטל מיזוג של טווחים וטווחים בעלי שם באמצעות Aspose.Cells עבור C++ API. ה-API מספק תכונות נוספות רבות לעבודה עם קובצי Excel שתוכלו לחקור בפירוט על ידי ביקור בתיעוד הרשמי. בכל שאלה, אנא אל תהסס לפנות אלינו בפורום התמיכה החינמי שלנו.

ראה גם