การผสานและยกเลิกการผสานเซลล์เป็นคุณลักษณะที่เรียบง่ายและใช้กันทั่วไปของ Microsoft Excel การผสานเซลล์อาจพิสูจน์ได้ว่ามีประโยชน์ในสถานการณ์ต่างๆ เช่น เมื่อคุณมีเวิร์กชีตที่มีหลายคอลัมน์ที่ใช้หัวเรื่องเดียวกันร่วมกัน คุณสามารถผสานเซลล์เหนือคอลัมน์เพื่อให้เป็นหัวเรื่องร่วมกันได้ ในกรณีที่ไม่จำเป็นต้องผสานเซลล์อีกต่อไป คุณสามารถยกเลิกการผสานได้อย่างง่ายดาย คุณอาจต้องดำเนินการเหล่านี้ภายในแอปพลิเคชัน C++ ของคุณ บทความนี้จะสอนวิธีผสานและยกเลิกการผสานเซลล์ในเวิร์กชีต Excel โดยทางโปรแกรมโดยใช้ C++
- C ++ API สำหรับการผสานและยกเลิกการผสานเซลล์
- รวมเซลล์ในแผ่นงาน Excel โดยใช้ C ++
- ยกเลิกการผสานเซลล์ในแผ่นงาน Excel โดยใช้ C ++
- รวมช่วงของเซลล์ในแผ่นงาน Excel โดยใช้ C ++
- ยกเลิกการผสานช่วงของเซลล์ในแผ่นงาน 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 ที่ว่างเปล่าและผสานเซลล์สองสามเซลล์โดยทำตามขั้นตอนด้านล่าง
- ขั้นแรก สร้างอินสแตนซ์ของคลาส IWorkbook
- ดึงแผ่นงานโดยใช้เมธอด IWorkbook->GetIWorksheets()->GetObjectByIndex (Aposose::Cells::Systems::Int32)
- ดึงข้อมูลเซลล์โดยใช้เมธอด IWorksheet->GetICells()
- รวมเซลล์โดยใช้ ICells->Merge(Aspose::Cells::Systems::Int32 firstRow, Aspose::Cells::Systems::Int32 firstColumn, Aspose::Cells::Systems::Int32 totalRows, Aspose:: Cells::Systems::Int32 totalColumns) วิธีการ
- ใช้สไตล์กับเซลล์ที่ผสาน
- สุดท้าย บันทึกไฟล์ Excel เอาต์พุตโดยใช้ IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String ชื่อไฟล์) วิธีการ
โค้ดตัวอย่างต่อไปนี้แสดงวิธีการผสานเซลล์ในแผ่นงาน 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 โดยใช้ C ++
ต่อไปนี้เป็นขั้นตอนในการยกเลิกการผสานเซลล์ในแผ่นงาน Excel
- โหลดไฟล์ Excel โดยใช้คลาส IWorkbook
- ดึงแผ่นงานที่มีเซลล์ที่ผสานโดยใช้เมธอด IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32)
- ดึงข้อมูลเซลล์โดยใช้เมธอด IWorksheet->GetICells()
- ยกเลิกการผสานเซลล์โดยใช้ ICells->UnMerge(Aspose::Cells::Systems::Int32 firstRow, Aspose::Cells::Systems::Int32 firstColumn, Aspose::Cells::Systems::Int32 totalRows, Aspose::Cells ::Systems::Int32 totalColumns) วิธีการ
- สุดท้าย บันทึกไฟล์ Excel เอาต์พุตโดยใช้ IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String ชื่อไฟล์) วิธีการ
โค้ดตัวอย่างต่อไปนี้สาธิตวิธียกเลิกการผสานเซลล์ในเวิร์กชีต 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 โดยใช้ C ++
ต่อไปนี้เป็นขั้นตอนในการผสานช่วงของเซลล์ในแผ่นงาน Excel
- ขั้นแรก สร้างอินสแตนซ์ของคลาส IWorkbook
- เรียกแผ่นงานที่ต้องการโดยใช้เมธอด IWorkbook->GetIWorksheets()->GetObjectByIndex (Aposose::Cells::Systems::Int32)
- ใส่ข้อมูลลงในเซลล์
- สร้างช่วงโดยใช้ IWorksheet->GetICells()->CreateIRange(intrusiveptrAspose::Cells::Systems::String ที่อยู่) วิธี
- รวมช่วงโดยใช้เมธอด IRange->Merge()
- สุดท้าย บันทึกไฟล์ Excel เอาต์พุตโดยใช้ IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String ชื่อไฟล์) วิธีการ
โค้ดตัวอย่างต่อไปนี้แสดงวิธีการผสานช่วงของเซลล์ในแผ่นงาน 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 โดยใช้ C ++
ต่อไปนี้เป็นขั้นตอนในการยกเลิกการผสานช่วงของเซลล์ในแผ่นงาน Excel
- โหลดไฟล์ Excel โดยใช้คลาส IWorkbook
- ดึงแผ่นงานที่มีเซลล์ที่ผสานโดยใช้เมธอด IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32)
- สร้างช่วงโดยใช้ IWorksheet->GetICells()->CreateIRange(intrusiveptrAspose::Cells::Systems::String ที่อยู่) วิธี
- ยกเลิกการผสานช่วงโดยใช้เมธอด IRange->UnMerge()
- สุดท้าย บันทึกไฟล์ Excel เอาต์พุตโดยใช้ IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String ชื่อไฟล์) วิธีการ
โค้ดตัวอย่างต่อไปนี้แสดงวิธียกเลิกการผสานช่วงของเซลล์ในเวิร์กชีต 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 โดยใช้ C ++
Aspose.Cells for C++ ยังให้ความสามารถในการผสานเซลล์ของช่วงที่มีชื่อ เพื่อให้บรรลุเป้าหมายนี้ โปรดปฏิบัติตามขั้นตอนด้านล่าง
- โหลดไฟล์ Excel โดยใช้คลาส IWorkbook
- ดึงแผ่นงานโดยใช้เมธอด IWorkbook->GetIWorksheets()->GetObjectByIndex (Aposose::Cells::Systems::Int32)
- สร้างช่วงโดยใช้ IWorksheet->GetICells()->CreateIRange(intrusiveptrAspose::Cells::Systems::String ที่อยู่) วิธี
- ตั้งชื่อช่วงโดยใช้ IRange->SetName(intrusiveptrAspose::Cells::Systems::String ค่า) วิธีการ
- สร้างและใช้สไตล์กับช่วงที่ตั้งชื่อ
- รวมเซลล์ของช่วงที่ตั้งชื่อโดยใช้เมธอด IRange->Merge()
- สุดท้าย บันทึกไฟล์ Excel เอาต์พุตโดยใช้ IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String ชื่อไฟล์) วิธี
โค้ดตัวอย่างต่อไปนี้สาธิตวิธีผสานเซลล์ของช่วงที่มีชื่อโดยใช้ 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")));
รับใบอนุญาตฟรี
คุณสามารถลองใช้ API ได้โดยไม่มีข้อจำกัดในการประเมินโดยขอ ใบอนุญาตชั่วคราวฟรี
บทสรุป
ในบทความนี้ คุณได้เรียนรู้วิธีผสานและยกเลิกการผสานเซลล์ในแผ่นงาน Excel โดยใช้ C++ นอกจากนี้ คุณได้เห็นวิธีผสานและยกเลิกการผสานช่วงและช่วงที่ตั้งชื่อโดยใช้ Aspose.Cells for C++ API API มีคุณสมบัติเพิ่มเติมมากมายสำหรับการทำงานกับไฟล์ Excel ซึ่งคุณสามารถสำรวจโดยละเอียดได้โดยไปที่ เอกสารอย่างเป็นทางการ ในกรณีที่มีคำถามใดๆ โปรดติดต่อเราได้ที่ ฟอรัมสนับสนุนฟรี