ทำงานกับสเปรดชีตหลายแท็บ

บทนำ

หากคุณต้องการ บันทึกแต่ละแท็บ 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 ยังรักษารูปแบบเซลล์, สูตร, และรูปภาพที่ฝังอยู่, ทำให้แต่ละแท็บที่ส่งออกดูเหมือนต้นฉบับอย่างสมบูรณ์.

ข้อกำหนดเบื้องต้น

  1. Visual Studio – รุ่นล่าสุดใดก็ได้ (Community, Professional หรือ Enterprise).
  2. .NET Framework 4.0+ – หรือ .NET Core/5/6 หากคุณต้องการรันไทม์ข้ามแพลตฟอร์ม.
  3. GroupDocs.Editor for .NET – ดาวน์โหลดจาก download page.
  4. Licensetemporary license ใช้ได้สำหรับการทดสอบ; ซื้อใบอนุญาตเต็มสำหรับการใช้งานจริง.
  5. Free trial – คุณสามารถลองใช้ไลบรารีได้ผ่านหน้า free trial .
  6. 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


บทเรียนที่เกี่ยวข้อง