คัดลอกแผ่นงานระหว่างสมุดงาน Excel โดยใช้ Aspose.Cells
การแนะนำ
การถ่ายโอนข้อมูลระหว่างเวิร์กบุ๊ก Excel เป็นงานทั่วไปในแอปพลิเคชัน .NET โดยเฉพาะอย่างยิ่งสำหรับการสร้างรายงานหรือการจัดการเทมเพลต โชคดีที่การใช้ Aspose.Cells สำหรับ .NET ทำให้กระบวนการนี้ตรงไปตรงมาและมีประสิทธิภาพ ในบทช่วยสอนนี้ เราจะแนะนำคุณตลอดขั้นตอนในการคัดลอกเวิร์กชีตจากเวิร์กบุ๊กหนึ่งไปยังอีกเวิร์กบุ๊กหนึ่ง ซึ่งจะช่วยให้คุณควบคุมการจัดการข้อมูลได้อย่างมีประสิทธิภาพ
ข้อกำหนดเบื้องต้น
ก่อนที่เราจะเริ่มต้น ให้แน่ใจว่าคุณมีเครื่องมือต่อไปนี้:
- Aspose.Cells สำหรับไลบรารี .NET: ดาวน์โหลดไลบรารีที่นี่.
- Visual Studio หรือ IDE ที่คล้ายกัน: คุณจะใช้สิ่งนี้เพื่อเขียนและดำเนินการโค้ด .NET ของคุณ
- ใบอนุญาต Aspose: เพื่อหลีกเลี่ยงข้อจำกัดในการประเมิน คุณสามารถสมัครทดลองใช้งานฟรี หรือรับใบอนุญาตชั่วคราว.
แพ็คเกจนำเข้า
เริ่มต้นด้วยการนำเข้าเนมสเปซที่จำเป็นลงในโครงการของคุณ:
using System.IO;
using Aspose.Cells;
using System;
เนมสเปซเหล่านี้จะช่วยให้คุณเข้าถึงคลาสที่จำเป็นในการจัดการเวิร์กบุ๊กและเวิร์กชีต Excel ได้อย่างมีประสิทธิภาพ
ขั้นตอนที่ 1: ตั้งค่าเส้นทางไดเร็กทอรี
ขั้นแรก ให้กำหนดไดเรกทอรีสำหรับจัดเก็บเวิร์กบุ๊ก Excel ของคุณ วิธีนี้จะช่วยให้เข้าถึงไฟล์ได้ง่ายขึ้นในภายหลัง
// ตั้งค่าเส้นทางไปยังไดเร็กทอรีเอกสารของคุณ
string dataDir = "Your Document Directory";
แทนที่"Your Document Directory"
ด้วยเส้นทางที่แท้จริงของคุณ
ขั้นตอนที่ 2: สร้างสมุดงานแรก
มาสร้างเวิร์กบุ๊กใหม่และเพิ่มเวิร์กชีตเข้าไปกัน
// สร้างสมุดงานใหม่
Workbook excelWorkbook0 = new Workbook();
// เข้าถึงแผ่นงานแรกในสมุดงาน
Worksheet ws0 = excelWorkbook0.Worksheets[0];
ขั้นตอนที่ 3: เพิ่มข้อมูลส่วนหัว
เติมเวิร์กชีตด้วยแถวส่วนหัวเพื่อแสดงชุดข้อมูลของคุณอย่างชัดเจน
// เติมแถวส่วนหัว (A1:A4)
for (int i = 0; i < 5; i++)
{
ws0.Cells[i, 0].PutValue($"Header Row {i}");
}
ขั้นตอนที่ 4: เติมข้อมูลรายละเอียดแถว
เพิ่มเนื้อหาโดยละเอียดเพื่อให้มีบริบทสำหรับแผ่นงานของคุณ
// เติมแถวรายละเอียด (A5:A999)
for (int i = 5; i < 1000; i++)
{
ws0.Cells[i, 0].PutValue($"Detail Row {i}");
}
ขั้นตอนที่ 5: กำหนดค่าการตั้งค่าการพิมพ์
ตั้งค่าการกำหนดค่าหน้าให้ทำซ้ำแถวส่วนหัวในหน้าที่พิมพ์ ซึ่งมีประโยชน์อย่างยิ่งสำหรับรายงานขนาดใหญ่
// กำหนดค่าการตั้งค่าหน้าให้ทำซ้ำแถวส่วนหัวในแต่ละหน้า
PageSetup pageSetup = ws0.PageSetup;
pageSetup.PrintTitleRows = "$1:$5";
ขั้นตอนที่ 6: สร้างสมุดงานที่สอง
ขั้นตอนต่อไป ให้สร้างเวิร์กบุ๊กที่สองที่จะรับเวิร์กชีตที่คัดลอกมา
// สร้างสมุดงานใหม่
Workbook excelWorkbook1 = new Workbook();
// เข้าถึงแผ่นงานแรกในสมุดงาน
Worksheet ws1 = excelWorkbook1.Worksheets[0];
ขั้นตอนที่ 7: เปลี่ยนชื่อแผ่นงานปลายทาง
เปลี่ยนชื่อเวิร์กชีตในเวิร์กบุ๊กที่สองเพื่อให้ระบุได้ง่าย
// เปลี่ยนชื่อแผ่นงาน
ws1.Name = "MySheet";
ขั้นตอนที่ 8: คัดลอกข้อมูลไปยังเวิร์กชีตปลายทาง
การใช้ประโยชน์จากCopy
วิธีการถ่ายโอนแผ่นงานทั้งหมดจากสมุดงานแรกไปยังสมุดงานที่สอง
//คัดลอกข้อมูลจากเวิร์กชีตแรกของเวิร์กบุ๊กแรกไปยังเวิร์กชีตแรกของเวิร์กบุ๊กที่สอง
ws1.Copy(ws0);
ขั้นตอนที่ 9: บันทึกสมุดงานสุดท้าย
สุดท้ายให้บันทึกสมุดงานที่แก้ไขแล้ว
// บันทึกสมุดงานเล่มที่ 2
excelWorkbook1.Save(dataDir + "CopyWorksheetFromWorkbookToOther_out.xls");
บทสรุป
และแล้วคุณก็จะได้มัน! คุณสามารถคัดลอกเวิร์กชีตจากเวิร์กบุ๊กหนึ่งไปยังอีกเวิร์กบุ๊กหนึ่งได้อย่างง่ายดายโดยใช้ Aspose.Cells สำหรับ .NET วิธีนี้เหมาะอย่างยิ่งสำหรับชุดข้อมูลขนาดใหญ่ การสร้างเทมเพลต และการสร้างรายงาน
คำถามที่พบบ่อย
ฉันสามารถคัดลอกเวิร์กชีตหลายแผ่นในครั้งเดียวได้ไหม
ใช่ คุณสามารถทำซ้ำผ่านเวิร์กชีตหลายแผ่นและคัดลอกทีละแผ่นไปยังเวิร์กบุ๊กอื่นได้
Aspose.Cells จะคงการจัดรูปแบบไว้ระหว่างการคัดลอกหรือไม่
แน่นอน!Copy
วิธีนี้จะรักษาการจัดรูปแบบและรูปแบบทั้งหมด
ฉันจะเข้าถึงเซลล์เฉพาะในเวิร์กชีตที่คัดลอกได้อย่างไร
คุณสามารถเข้าถึงเซลล์เฉพาะได้โดยใช้Cells
ทรัพย์สินภายในแผ่นงาน
จะเกิดอะไรขึ้นหากฉันต้องการคัดลอกเฉพาะค่าโดยไม่จัดรูปแบบ?
คุณสามารถใช้วิธีการที่กำหนดเองเพื่อคัดลอกค่าทีละเซลล์ได้หากต้องการ
ฉันสามารถทดสอบฟีเจอร์นี้โดยไม่ต้องมีใบอนุญาตได้หรือไม่?
ใช่ Aspose เสนอทดลองใช้งานฟรี เพื่อสำรวจคุณสมบัติของมัน