การผสานและยกเลิกการผสานเซลล์เป็นคุณลักษณะที่เรียบง่ายและใช้กันทั่วไปของ 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();

// เข้าถึงแผ่นงานแรกในไฟล์ Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// สร้างวัตถุเซลล์เพื่อดึงเซลล์ทั้งหมด
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);

// บันทึกไฟล์ Excel
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")));

// เข้าถึงแผ่นงานแรกในไฟล์ Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// สร้างวัตถุเซลล์เพื่อดึงเซลล์ทั้งหมด
intrusive_ptr<ICells> cells = worksheet->GetICells();

// ยกเลิกการผสานเซลล์
cells->UnMerge(5, 2, 2, 3);

// บันทึกไฟล์ Excel
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();

// เข้าถึงแผ่นงานแรกในไฟล์ Excel
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();

// บันทึกไฟล์ Excel
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")));

// เข้าถึงแผ่นงานแรกในไฟล์ Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// สร้างช่วง
intrusive_ptr<IRange> range = worksheet->GetICells()->CreateIRange(new String("A1:D4"));

// ยกเลิกการผสานช่วง
range->UnMerge();

// บันทึกไฟล์ Excel
workbook->Save(outDir->StringAppend(new String("UnmergeRangeOfCells_out.xlsx")));
รูปภาพของไฟล์ Excel เอาต์พุตที่สร้างโดยโค้ดตัวอย่าง

รูปภาพของไฟล์ Excel เอาต์พุตที่สร้างโดยโค้ดตัวอย่าง

รวมเซลล์ของช่วงที่มีชื่อในแผ่นงาน Excel โดยใช้ C ++

Aspose.Cells for 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")));

// เข้าถึงแผ่นงานแรกในไฟล์ Excel
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();

// บันทึกไฟล์ Excel
workbook->Save(outDir->StringAppend(new String("MergeNamedRange_out.xlsx")));
รูปภาพของไฟล์ Excel เอาต์พุตที่สร้างโดยโค้ดตัวอย่าง

รูปภาพของไฟล์ Excel เอาต์พุตที่สร้างโดยโค้ดตัวอย่าง

รับใบอนุญาตฟรี

คุณสามารถลองใช้ API ได้โดยไม่มีข้อจำกัดในการประเมินโดยขอ ใบอนุญาตชั่วคราวฟรี

บทสรุป

ในบทความนี้ คุณได้เรียนรู้วิธีผสานและยกเลิกการผสานเซลล์ในแผ่นงาน Excel โดยใช้ C++ นอกจากนี้ คุณได้เห็นวิธีผสานและยกเลิกการผสานช่วงและช่วงที่ตั้งชื่อโดยใช้ Aspose.Cells for C++ API API มีคุณสมบัติเพิ่มเติมมากมายสำหรับการทำงานกับไฟล์ Excel ซึ่งคุณสามารถสำรวจโดยละเอียดได้โดยไปที่ เอกสารอย่างเป็นทางการ ในกรณีที่มีคำถามใดๆ โปรดติดต่อเราได้ที่ ฟอรัมสนับสนุนฟรี

ดูสิ่งนี้ด้วย