ทำงานกับสเปรดชีตหลายแท็บ
บทนำ
หากคุณต้องการ บันทึกแต่ละแท็บ Excel เป็นไฟล์อิสระ, GroupDocs.Editor สำหรับ .NET ทำให้เป็นเรื่องง่าย ไม่ว่าคุณจะกำลังดึงรายงานการเงิน, สร้างแผ่นงานตามแผนก, หรือแปลงแท็บเป็น PDF, บทเรียนนี้จะพาคุณผ่านกระบวนการทั้งหมด—ตั้งแต่การตั้งค่าสภาพแวดล้อมจนถึงการปล่อยทรัพยากร—เพื่อให้คุณสามารถทำงานอัตโนมัติกับสเปรดชีตหลายแท็บได้อย่างมั่นใจ.
คำตอบอย่างรวดเร็ว
- GroupDocs.Editor สามารถแยกไฟล์ XLSX เป็นไฟล์แยกได้หรือไม่? ใช่, คุณสามารถโหลดเวิร์กบุ๊กและส่งออกแต่ละชีตแยกกันได้.
- รูปแบบใดบ้างที่แต่ละแท็บสามารถบันทึกได้? XLSX, CSV, PDF, HTML, และอื่น ๆ – รองรับรูปแบบผลลัพธ์กว่า 30 รูปแบบ.
- ฉันต้องมีลิขสิทธิ์สำหรับฟีเจอร์นี้หรือไม่? ใบอนุญาตชั่วคราวใช้ได้สำหรับการทดสอบ; จำเป็นต้องมีใบอนุญาตเต็มสำหรับการใช้งานจริง.
- .NET Core รองรับหรือไม่? แน่นอน – ไลบรารีทำงานกับ .NET Framework 4.0+ และ .NET Core/5/6+.
- สามารถประมวลผลแท็บได้กี่แท็บพร้อมกัน? GroupDocs.Editor สามารถจัดการเวิร์กบุ๊กที่มี 500+ ชีตได้โดยไม่ต้องโหลดไฟล์ทั้งหมดเข้าสู่หน่วยความจำ.
“บันทึกแต่ละแท็บ Excel” คืออะไร?
“Save each Excel tab” หมายถึงการดึงทุกแผ่นงานจากเวิร์กบุ๊กหลายชีตและเขียนแต่ละชีตเป็นเอกสารแยกของตนเอง (เช่นไฟล์ XLSX หรือ PDF แยกกัน) วิธีนี้ทำให้การประมวลผลต่อเนื่อง, รายงาน, และการแจกจ่ายง่ายขึ้นโดยให้คุณมีไฟล์ต่อหนึ่งชีต ซึ่งสามารถแชร์, เก็บถาวร, หรือแปลงต่อได้อย่างอิสระ.
ทำไมต้องใช้ GroupDocs.Editor สำหรับงานนี้?
GroupDocs.Editor รองรับ รูปแบบอินพุตและเอาต์พุตกว่า 30 และสามารถประมวลผลสเปรดชีตที่มี สูงสุด 1,000 ชีต โดยรักษาการใช้หน่วยความจำให้น้อยด้วยการสตรีมข้อมูลแทนการโหลดไฟล์ทั้งหมด API ยังรักษารูปแบบเซลล์, สูตร, และรูปภาพที่ฝังอยู่, ทำให้แต่ละแท็บที่ส่งออกดูเหมือนต้นฉบับอย่างสมบูรณ์.
ข้อกำหนดเบื้องต้น
- Visual Studio – รุ่นล่าสุดใดก็ได้ (Community, Professional หรือ Enterprise).
- .NET Framework 4.0+ – หรือ .NET Core/5/6 หากคุณต้องการรันไทม์ข้ามแพลตฟอร์ม.
- GroupDocs.Editor for .NET – ดาวน์โหลดจาก download page.
- License – temporary license ใช้ได้สำหรับการทดสอบ; ซื้อใบอนุญาตเต็มสำหรับการใช้งานจริง.
- Free trial – คุณสามารถลองใช้ไลบรารีได้ผ่านหน้า free trial .
- Support – หากพบปัญหา, เยี่ยมชม support forum หรือพิจารณา purchase page เพื่อซื้อใบอนุญาตเต็ม.
นำเข้า Namespaces
ก่อนที่เราจะเริ่มเขียนโค้ด, คุณต้องนำเข้า namespaces ที่จำเป็น เพิ่มคำสั่ง using ด้านล่างนี้ไปที่ส่วนหัวของไฟล์ .cs ของคุณ:
using System.IO;
using GroupDocs.Editor.Formats;
using GroupDocs.Editor.Options;
วิธีบันทึกแต่ละแท็บ Excel เป็นไฟล์แยก
โหลดเวิร์กบุ๊ก, สร้าง EditableDocument สำหรับแต่ละชีต, และเรียก Save ด้วยรูปแบบที่ต้องการ กระบวนการนี้จะแยกแต่ละแท็บ, ให้คุณเลือกเส้นทางเอาต์พุตที่แตกต่างกัน, และปล่อยทรัพยากรโดยอัตโนมัติ ด้านล่างเป็นขั้นตอนการทำงานแบบทีละขั้นตอนพร้อมคำอธิบายการเรียก API แต่ละรายการและเคล็ดลับการปฏิบัติที่ดีที่สุดเพื่อหลีกเลี่ยงข้อผิดพลาดทั่วไป.
ขั้นตอนที่ 1: รับเส้นทางไปยังไฟล์อินพุต
แรก, ระบุเส้นทางเต็มไปยังไฟล์ XLSX ต้นทางที่มีหลายแท็บ.
string inputFilePath = "Your Sample Document";
ขั้นตอนที่ 2: โหลดสเปรดชีตเข้าสู่อินสแตนซ์ Editor
คลาส Editor เป็นจุดเริ่มต้นสำหรับการดำเนินการเอกสารทั้งหมดใน GroupDocs.Editor มันอ่านสตรีมไฟล์และเตรียมเอกสารสำหรับการแก้ไขหรือการดึงข้อมูล.
using (FileStream inputStream = File.OpenRead(inputFilePath))
{
using (Editor editor = new Editor(delegate { return inputStream; }, delegate { return new SpreadsheetLoadOptions(); }))
{
// Further steps will go here
}
}
ขั้นตอนที่ 3: สร้าง EditableDocument จากแท็บแรก
EditableDocument แทนชีตเดียวที่สามารถแก้ไขได้ภายในเวิร์กบุ๊ก ตัวสร้างรับอินสแตนซ์ Editor และดัชนีชีตที่เริ่มจากศูนย์.
SpreadsheetEditOptions editOptions1 = new SpreadsheetEditOptions();
editOptions1.WorksheetIndex = 0; // First tab
EditableDocument firstTabBeforeEdit = editor.Edit(editOptions1);
ขั้นตอนที่ 4: สร้าง EditableDocument จากแท็บที่สอง
คุณสามารถทำซ้ำรูปแบบเดียวกันสำหรับชีตเพิ่มเติมโดยเปลี่ยนค่าดัชนี.
SpreadsheetEditOptions editOptions2 = new SpreadsheetEditOptions();
editOptions2.WorksheetIndex = 1; // Second tab
EditableDocument secondTabBeforeEdit = editor.Edit(editOptions2);
ขั้นตอนที่ 5: บันทึกแท็บแรกเป็นเอกสารแยก
Save เขียนเอกสารที่แก้ไขแล้วลงไฟล์ในรูปแบบที่ระบุ เรียกใช้บนอินสแตนซ์ EditableDocument โดยระบุเส้นทางเอาต์พุตและรูปแบบ (เช่น SaveFormat.Xlsx).
SpreadsheetSaveOptions saveOptions1 = new SpreadsheetSaveOptions(SpreadsheetFormats.Xlsm);
string outputFilename1 = Path.GetFileNameWithoutExtension(inputFilePath) + "_tab1.xlsm";
string outputPath1 = Path.Combine(Constants.GetOutputDirectoryPath(inputFilePath), outputFilename1);
editor.Save(firstTabBeforeEdit, outputPath1, saveOptions1);
ขั้นตอนที่ 6: บันทึกแท็บที่สองเป็นเอกสารแยก
การเรียก Save เดียวกันทำงานกับชีตที่สอง, และคุณสามารถเลือกรูปแบบอื่นเช่น PDF หากต้องการ.
SpreadsheetSaveOptions saveOptions2 = new SpreadsheetSaveOptions(SpreadsheetFormats.Xlsb);
string outputFilename2 = Path.GetFileNameWithoutExtension(inputFilePath) + "_tab2.xlsb";
string outputPath2 = Path.Combine(Constants.GetOutputDirectoryPath(inputFilePath), outputFilename2);
editor.Save(secondTabBeforeEdit, outputPath2, saveOptions2);
ขั้นตอนที่ 7: ปล่อย (Dispose) อินสแตนซ์ EditableDocument
Dispose ปล่อยทรัพยากรที่ไม่ได้จัดการซึ่งเอกสารถือครอง เช่น ตัวจัดการไฟล์, เพื่อให้แน่ใจว่าไม่มีการรั่วไหลในบริการที่ทำงานเป็นเวลานาน.
firstTabBeforeEdit.Dispose();
secondTabBeforeEdit.Dispose();
ปัญหาทั่วไปและวิธีแก้
- ข้อผิดพลาด “File is locked” – ตรวจสอบให้แน่ใจว่าคุณเรียก
Dispose()บนทุกEditableDocumentและอินสแตนซ์Editor, หรือห่อหุ้มด้วยคำสั่งusing. - สไตล์หายหลังการส่งออก – ตรวจสอบว่าคุณกำลังบันทึกเป็นรูปแบบที่รองรับการจัดรูปแบบ (เช่น XLSX หรือ PDF). CSV จะสูญเสียการจัดรูปแบบตามการออกแบบ.
- เวิร์กบุ๊กขนาดใหญ่ทำให้ประสิทธิภาพช้า – ใช้ตัวเลือกการโหลดแบบสตรีม (
LoadOptions.Streaming = true) เพื่อรักษาการใช้หน่วยความจำให้ต่ำ.
คำถามที่พบบ่อย
Q: ถ้าเวิร์กบุ๊กของฉันมีชีตที่ซ่อนอยู่จะทำอย่างไร?
A: ชีตที่ซ่อนจะถูกจัดการเช่นเดียวกับชีตอื่น; คุณสามารถเข้าถึงโดยดัชนีและบันทึกได้, แต่คุณอาจต้องตั้งค่า EditableDocument.IsVisible = true ก่อนบันทึกหากต้องการให้แสดงในผลลัพธ์.
Q: ฉันสามารถแปลงแท็บ Excel เป็น PDF โดยตรงได้หรือไม่?
A: ได้, ระบุ SaveFormat.Pdf เมื่อเรียก Save บน EditableDocument. ไลบรารีจะรักษาเลย์เอาต์, รูปภาพ, และแผนภูมิระหว่างการแปลง.
Q: สามารถแยกเวิร์กบุ๊กเป็นไฟล์ CSV แทน XLSX ได้หรือไม่?
A: แน่นอน. ใช้ SaveFormat.Csv สำหรับแต่ละ EditableDocument เพื่อสร้างไฟล์ CSV แบบข้อความธรรมดาของแต่ละชีต.
Q: GroupDocs.Editor รองรับไฟล์ Excel ที่มีการป้องกันด้วยรหัสผ่านหรือไม่?
A: รองรับ. ให้รหัสผ่านผ่าน LoadOptions.Password เมื่อสร้างอินสแตนซ์ Editor.
Q: ฉันจะหา ตัวอย่างเพิ่มเติมของการทำงานกับสเปรดชีตได้จากที่ไหน?
A: เอกสารอย่างเป็นทางการและโครงการตัวอย่างบน download page มีกรณีการใช้งานเพิ่มเติม.
สรุป
โดยทำตามขั้นตอนเหล่านี้, คุณสามารถ บันทึกแต่ละแท็บ Excel เป็นเอกสารอิสระ, แปลงแท็บเป็น PDF, หรือแยกเวิร์กบุ๊กขนาดใหญ่เป็นส่วนที่จัดการได้ง่าย—ทั้งหมดนี้ด้วยไลบรารี GroupDocs.Editor สำหรับ .NET ที่เชื่อถือได้และมีประสิทธิภาพสูง ความสามารถนี้ทำให้กระบวนการรายงานเป็นอัตโนมัติ, ลดการจัดการสเปรดชีตด้วยมือ, และเพิ่มประสิทธิภาพการสกัดข้อมูล.
Last Updated: 2026-06-06
Tested With: GroupDocs.Editor 23.11 for .NET
Author: GroupDocs