การคัดลอกแถวและคอลัมน์เป็นงานทั่วไปที่ทำในขณะที่ทำงานกับไฟล์ Excel อาจมีสถานการณ์ที่คุณจำเป็นต้องคัดลอกแถวหรือคอลัมน์ในไฟล์ Excel โดยทางโปรแกรม ในกรณีเช่นนี้ บทความนี้จะสอนวิธีคัดลอกแถวและคอลัมน์ในไฟล์ Excel โดยใช้ C++

C++ API สำหรับการคัดลอกแถวและคอลัมน์ในไฟล์ Excel

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

PM> Install-Package Aspose.Cells.Cpp

คัดลอกแถวเดียวในไฟล์ Excel โดยใช้ C++

ต่อไปนี้คือรูปภาพของไฟล์ Excel ต้นทางที่เราจะใช้ในตัวอย่างต่อไปนี้

ใบงานที่มา

ต่อไปนี้เป็นขั้นตอนการคัดลอกแถวเดียวในไฟล์ Excel โดยใช้ C++

โค้ดตัวอย่างต่อไปนี้แสดงวิธีการคัดลอกแถวในไฟล์ Excel โดยใช้ C++

// เส้นทางไดเร็กทอรีต้นทาง
StringPtr srcDir = new String("SourceDirectory\\Excel\\");

// เส้นทางไดเร็กทอรีเอาต์พุต
StringPtr outDir = new String("OutputDirectory\\");

// โหลดไฟล์ Excel อินพุต
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));

// รับแผ่นงานแรก
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// คัดลอกแถว
worksheet->GetICells()->CopyIRow(worksheet->GetICells(), 1, 15);

// บันทึกไฟล์ Excel
workbook->Save(outDir->StringAppend(new String("CopyRow_out.xlsx")));
รูปภาพแสดงแถวที่คัดลอก

รูปภาพแสดงแถวที่คัดลอก

การคัดลอกหลายแถวในไฟล์ Excel โดยใช้ C++

ในการคัดลอกหลายแถว เราจะใช้เมธอด CopyIRows ที่ยอมรับพารามิเตอร์เพิ่มเติมที่ระบุจำนวนแถวทั้งหมดที่จะคัดลอก หากต้องการคัดลอกหลายแถว ให้ทำตามขั้นตอนด้านล่าง

  • โหลดไฟล์ Excel โดยใช้คลาส IWorkbook
  • ดึงแผ่นงานที่คุณต้องการคัดลอกแถว
  • คัดลอกแถวโดยใช้ CopyIRows(intrusiveptrAspose::Cells::ICells sourceCells, Aspose::Cells::Systems::Int32 sourceRowIndex, Aspose::Cells::Systems::Int32 destinationRowIndex, Aspose::Cells::Systems::Int32 rowNumber) เมธอด
  • บันทึกไฟล์ Excel โดยใช้ IWorkbook->Save(intrusiveptrAspose::Cells::Systems::String ชื่อไฟล์) วิธีการ

โค้ดตัวอย่างต่อไปนี้แสดงวิธีการคัดลอกหลายแถวในไฟล์ Excel โดยใช้ C++

// เส้นทางไดเร็กทอรีต้นทาง
StringPtr srcDir = new String("SourceDirectory\\Excel\\");

// เส้นทางไดเร็กทอรีเอาต์พุต
StringPtr outDir = new String("OutputDirectory\\");

// โหลดไฟล์ Excel อินพุต
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));

// รับแผ่นงานแรก
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// คัดลอกแถว
worksheet->GetICells()->CopyIRows(worksheet->GetICells(), 1, 15, 3);

// บันทึกไฟล์ Excel
workbook->Save(outDir->StringAppend(new String("CopyRows_out.xlsx")));
รูปภาพแสดงแถวที่คัดลอก

รูปภาพแสดงแถวที่คัดลอก

คัดลอกคอลัมน์เดียวในไฟล์ Excel โดยใช้ C++

ต่อไปนี้เป็นขั้นตอนในการคัดลอกคอลัมน์เดียวในไฟล์ Excel โดยใช้ C++

  • โหลดไฟล์ Excel โดยใช้คลาส IWorkbook
  • ดึงแผ่นงานที่คุณต้องการคัดลอกคอลัมน์
  • คัดลอกคอลัมน์โดยใช้ CopyIColumn(intrusiveptrAspose::Cells::ICells sourceCells, Aspose::Cells::Systems::Int32 sourceColumnIndex, Aspose::Cells::Systems::Int32 destinationColumnIndex) เมธอด
  • บันทึกไฟล์ Excel โดยใช้ IWorkbook->Save(intrusiveptrAspose::Cells::Systems::String ชื่อไฟล์) วิธีการ

โค้ดตัวอย่างต่อไปนี้แสดงวิธีการคัดลอกคอลัมน์เดียวในไฟล์ Excel โดยใช้ C++

// เส้นทางไดเร็กทอรีต้นทาง
StringPtr srcDir = new String("SourceDirectory\\Excel\\");

// เส้นทางไดเร็กทอรีเอาต์พุต
StringPtr outDir = new String("OutputDirectory\\");

// โหลดไฟล์ Excel อินพุต
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));

// รับแผ่นงานแรก
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// คัดลอกคอลัมน์
worksheet->GetICells()->CopyIColumn(worksheet->GetICells(), 0, 6);

// บันทึกไฟล์ Excel
workbook->Save(outDir->StringAppend(new String("CopyColumn_out.xlsx")));
รูปภาพแสดงคอลัมน์ที่คัดลอก

รูปภาพแสดงคอลัมน์ที่คัดลอก

การคัดลอกหลายคอลัมน์ในไฟล์ Excel โดยใช้ C++

ในการคัดลอกหลายคอลัมน์ เราจะใช้เมธอด CopyIColumns ที่ยอมรับพารามิเตอร์เพิ่มเติมที่ระบุจำนวนคอลัมน์ทั้งหมดที่จะคัดลอก หากต้องการคัดลอกหลายคอลัมน์ ให้ทำตามขั้นตอนด้านล่าง

  • โหลดไฟล์ Excel โดยใช้คลาส IWorkbook
  • ดึงแผ่นงานที่คุณต้องการคัดลอกคอลัมน์
  • คัดลอกคอลัมน์โดยใช้ CopyIColumns(intrusiveptrAspose::Cells::ICells sourceCells, Aspose::Cells::Systems::Int32 sourceColumnIndex, Aspose::Cells::Systems::Int32 destinationColumnIndex, Aspose::Cells::Systems::Int32 columnNumber) เมธอด
  • บันทึกไฟล์ Excel โดยใช้ IWorkbook->Save(intrusiveptrAspose::Cells::Systems::String ชื่อไฟล์) วิธีการ

โค้ดตัวอย่างต่อไปนี้แสดงวิธีการคัดลอกหลายคอลัมน์ในไฟล์ Excel โดยใช้ C++

// เส้นทางไดเร็กทอรีต้นทาง
StringPtr srcDir = new String("SourceDirectory\\Excel\\");

// เส้นทางไดเร็กทอรีเอาต์พุต
StringPtr outDir = new String("OutputDirectory\\");

// โหลดไฟล์ Excel อินพุต
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));

// รับแผ่นงานแรก
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// คัดลอกคอลัมน์
worksheet->GetICells()->CopyIColumns(worksheet->GetICells(), 0, 6, 3);

// บันทึกไฟล์ Excel
workbook->Save(outDir->StringAppend(new String("CopyColumns_out.xlsx")));
รูปภาพแสดงคอลัมน์ที่คัดลอก

รูปภาพแสดงคอลัมน์ที่คัดลอก

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

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

บทสรุป

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

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