คัดลอกหรือย้ายแผ่นงาน 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++

// เส้นทางไดเร็กทอรีต้นทาง
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 เล่มหนึ่งไปยังอีกเล่มหนึ่งโดยใช้ 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

ต่อไปนี้คือโค้ดตัวอย่างสำหรับย้ายแผ่นงานไปยังตำแหน่งอื่นภายในสมุดงานเดียวกันโดยใช้ 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 ที่คุณสามารถสำรวจได้โดยไปที่ เอกสารอย่างเป็นทางการ ในกรณีที่มีคำถามใดๆ โปรดติดต่อเราได้ที่ ฟอรัมสนับสนุนฟรี

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