ไฟล์ Excel ใช้สำหรับจัดการข้อมูลที่ซับซ้อน เช่น งบประมาณแผนกหรือรายงานการขายประจำปี อาจมีสถานการณ์ที่คุณมีเทมเพลตสำเร็จรูปที่คุณต้องการใช้สำหรับสร้างรายงาน ในการทำเช่นนี้ คุณสามารถสร้างสำเนาของเวิร์กชีตเทมเพลตได้ คุณยังอาจจำเป็นต้องจัดระเบียบเวิร์กชีตเพื่อแสดงการไหลของข้อมูล ในกรณีดังกล่าว คุณสามารถจัดเรียงเวิร์กชีตใหม่ได้ตามความต้องการของคุณ ด้วยเหตุนี้ คุณจะได้เรียนรู้วิธีคัดลอกและย้ายเวิร์กชีตโดยทางโปรแกรมโดยใช้ C++
- C ++ API เพื่อคัดลอกหรือย้ายแผ่นงาน Excel
- คัดลอกแผ่นงานภายในสมุดงาน Excel โดยใช้ C ++
- คัดลอกแผ่นงานจากสมุดงานหนึ่งไปยังอีกที่หนึ่ง
- ย้ายแผ่นงานไปยังตำแหน่งอื่นโดยใช้ 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 โดยใช้คลาส IWorkbook
- ดึงคอลเลกชันแผ่นงานโดยใช้เมธอด IWorkbook->GetIWorksheets()
- เพิ่มสำเนาของแผ่นงานที่ต้องการโดยใช้ IWorksheetCollection->AddCopy (intrusiveptrAspose::Cells::Systems::String ชื่อแผ่นงาน) เมธอด
- สุดท้าย ให้บันทึกไฟล์ 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("Sample1.xlsx")));
// ดึงแผ่นงาน
intrusive_ptr<IWorksheetCollection> sheets = workbook->GetIWorksheets();
// คัดลอกข้อมูลไปยังแผ่นงานใหม่จากแผ่นงานที่มีอยู่ภายในสมุดงาน
sheets->AddCopy(new String("Sheet1"));
// บันทึกไฟล์ Excel
workbook->Save(outDir->StringAppend(new String("Sample1_out.xlsx")));
คัดลอกแผ่นงานจากสมุดงานหนึ่งไปยังอีกที่หนึ่ง
Aspose.Cells for C++ ยังให้คุณคัดลอกแผ่นงานระหว่างไฟล์ Excel สองไฟล์ ต่อไปนี้เป็นขั้นตอนในการคัดลอกแผ่นงานจากไฟล์ Excel หนึ่งไปยังอีกไฟล์หนึ่ง
- ขั้นแรก ให้โหลดไฟล์ Excel ต้นทางและปลายทางโดยใช้คลาส IWorkbook
- เรียกคอลเลคชันแผ่นงานของสมุดงานต้นทางโดยใช้เมธอด IWorkbook->GetIWorksheets()
- ดึงแผ่นงานที่คุณต้องการคัดลอกโดยใช้เมธอด IWorksheetCollection->GetObjectByIndex (Aspose::Cells::Systems::Int32)
- คัดลอกแผ่นงานไปยังสมุดงานปลายทางโดยใช้ IWorkbook->GetIWorksheets()->GetObjectByIndex (Aposose::Cells::Systems::Int32 index)->Copy (intrusiveptrAspose::Cells::IWorksheet sourceSheet) เมธอด
- สุดท้าย บันทึกไฟล์ Excel ปลายทางโดยใช้ IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String ชื่อไฟล์) วิธีการ
ต่อไปนี้คือโค้ดตัวอย่างเพื่อคัดลอกแผ่นงานจากสมุดงาน Excel เล่มหนึ่งไปยังอีกเล่มหนึ่งโดยใช้ C++
// เส้นทางไดเร็กทอรีต้นทาง
StringPtr srcDir = new String("SourceDirectory\\");
// เส้นทางไดเร็กทอรีเอาต์พุต
StringPtr outDir = new String("OutputDirectory\\");
// โหลดไฟล์ Excel ต้นทาง
intrusive_ptr<IWorkbook> sourceWorkbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));
// โหลดไฟล์ Excel ปลายทาง
intrusive_ptr<IWorkbook> destinationWorkbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("book1.xlsx")));
// ดึงแผ่นงานของสมุดงานต้นฉบับ
intrusive_ptr<IWorksheetCollection> sheets = sourceWorkbook->GetIWorksheets();
// เรียกแผ่นงานที่คุณต้องการคัดลอก
intrusive_ptr<IWorksheet> worksheet = sheets->GetObjectByIndex(0);
// คัดลอกเวิร์กชีตที่ดึงมาก่อนหน้านี้ไปยังเวิร์กบุ๊กใหม่
destinationWorkbook->GetIWorksheets()->GetObjectByIndex(0)->Copy(worksheet);
// บันทึกไฟล์ Excel
destinationWorkbook->Save(outDir->StringAppend(new String("book1_out.xlsx")));
ย้ายแผ่นงานไปยังตำแหน่งอื่นโดยใช้ C ++
ต่อไปนี้เป็นขั้นตอนในการเปลี่ยนตำแหน่งของแผ่นงานภายในสมุดงาน Excel
- โหลดไฟล์ Excel โดยใช้คลาส IWorkbook
- เรียกคอลเลกชันแผ่นงานโดยใช้เมธอด IWorkbook->GetIWorksheets()
- ดึงเวิร์กชีตที่คุณต้องการย้ายโดยใช้เมธอด
- ย้ายเวิร์กชีตไปยังตำแหน่งที่ต้องการโดยใช้เมธอด IWorksheet->MoveTo (Aposose::Cells::Systems::Int32 index)
- สุดท้าย ให้บันทึกไฟล์ 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("Sample1.xlsx")));
// ดึงแผ่นงาน
intrusive_ptr<IWorksheetCollection> sheets = workbook->GetIWorksheets();
// เข้าสู่แผ่นงานแรก
intrusive_ptr<IWorksheet> sheet = sheets->GetObjectByIndex(0);
// ย้ายแผ่นงานแรกไปยังตำแหน่งที่สองในสมุดงาน
sheet->MoveTo(1);
// บันทึกไฟล์ Excel
workbook->Save(outDir->StringAppend(new String("Sample1_out.xlsx")));
รับใบอนุญาตฟรี
คุณสามารถลองใช้ API ได้โดยไม่มีข้อจำกัดในการประเมินโดยขอ ใบอนุญาตชั่วคราวฟรี
บทสรุป
ในบทความนี้ คุณได้เรียนรู้วิธีคัดลอกแผ่นงานภายในสมุดงาน Excel เดียวกันหรือระหว่างสมุดงานต่างๆ นอกจากนี้ คุณได้เห็นวิธีการเปลี่ยนตำแหน่งของแผ่นงานภายในไฟล์ Excel Aspose.Cells for C++ มีคุณสมบัติอีกมากมายสำหรับการทำงานกับไฟล์ Excel ที่คุณสามารถสำรวจได้โดยไปที่ เอกสารอย่างเป็นทางการ ในกรณีที่มีคำถามใดๆ โปรดติดต่อเราได้ที่ ฟอรัมสนับสนุนฟรี