บันทึกสมุดงานเป็นรูปแบบข้อความ CSV
การแนะนำ
เมื่อต้องจัดการกับข้อมูล รูปแบบที่คุณเลือกสามารถกำหนดได้ว่าคุณสามารถทำงานกับข้อมูลนั้นได้ง่ายเพียงใด รูปแบบที่ใช้กันทั่วไปในการจัดการข้อมูลแบบตารางคือ CSV (Comma-Separated Values) หากคุณเป็นนักพัฒนาที่ทำงานกับไฟล์ Excel และจำเป็นต้องแปลงสมุดงานเป็นรูปแบบ CSV Aspose.Cells สำหรับ .NET เป็นไลบรารีที่ยอดเยี่ยมที่ช่วยลดความซับซ้อนของงานนี้ ในบทช่วยสอนนี้ เราจะอธิบายขั้นตอนในการแปลงสมุดงาน Excel เป็นรูปแบบ CSV แบบข้อความอย่างราบรื่น
ข้อกำหนดเบื้องต้น
ก่อนที่เราจะเริ่มต้น เรามาตรวจสอบให้แน่ใจก่อนว่าคุณได้เตรียมทุกอย่างให้พร้อมเพื่อเริ่มต้น:
- ความรู้พื้นฐานเกี่ยวกับ C# และ .NET: เนื่องจากเราจะเขียนโค้ดด้วย C# ความคุ้นเคยกับภาษาและกรอบงาน .NET จึงเป็นสิ่งสำคัญ
- ไลบรารี Aspose.Cells: ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งไลบรารี Aspose.Cells สำหรับ .NET ในสภาพแวดล้อมการพัฒนาของคุณแล้ว คุณสามารถดาวน์โหลดได้ ที่นี่ .
- Visual Studio หรือ IDE C# ใดๆ: คุณจะต้องมีสภาพแวดล้อมการพัฒนาแบบบูรณาการ (IDE) เพื่อเขียนและดำเนินการโค้ดของคุณ Visual Studio เป็นตัวเลือกยอดนิยม
- เวิร์กบุ๊ก Excel: เตรียมเวิร์กบุ๊ก Excel ตัวอย่าง (เช่น “book1.xls”) ที่มีข้อมูลบางส่วนเพื่อทดสอบการแปลง
แพ็คเกจนำเข้า
ตอนนี้เราได้ครอบคลุมข้อกำหนดเบื้องต้นแล้ว ขั้นตอนแรกของกระบวนการคือการนำเข้าแพ็คเกจที่จำเป็น ในโปรเจ็กต์ C# ของคุณ คุณต้องรวมเนมสเปซต่อไปนี้ไว้ที่ด้านบนของไฟล์โค้ดของคุณ:
using System.IO;
using Aspose.Cells;
using System;
เนมสเปซเหล่านี้จะทำให้คุณสามารถเข้าถึงคลาสและวิธีการที่จำเป็นสำหรับการทำงานกับไฟล์ Excel และการจัดการสตรีมหน่วยความจำ
ขั้นตอนที่ 1: กำหนดเส้นทางไปยังไดเร็กทอรีเอกสาร
ขั้นตอนแรกในกระบวนการของเราคือการกำหนดว่าเอกสารของเรา (สมุดงาน Excel) จะถูกเก็บไว้ที่ไหน ขั้นตอนนี้มีความสำคัญเนื่องจากจะช่วยให้โปรแกรมของเราทราบว่าจะค้นหาไฟล์ที่ต้องการประมวลผลได้จากที่ใด
// เส้นทางไปยังไดเร็กทอรีเอกสาร
string dataDir = "Your Document Directory";
อย่าลืมเปลี่ยน"Your Document Directory"
โดยใช้เส้นทางจริงที่ไฟล์ “book1.xls” ของคุณอยู่ ซึ่งอาจเป็นไดเร็กทอรีบนคอมพิวเตอร์ของคุณหรือเส้นทางไปยังเซิร์ฟเวอร์ก็ได้
ขั้นตอนที่ 2: โหลดสมุดงานต้นฉบับของคุณ
ต่อไปเราจะต้องโหลดเวิร์กบุ๊ก Excel ที่จะแปลงเป็นรูปแบบ CSV
// โหลดสมุดงานต้นฉบับของคุณ
Workbook workbook = new Workbook(dataDir + "book1.xls");
การWorkbook
คลาสจากไลบรารี Aspose.Cells ช่วยให้จัดการและเข้าถึงเวิร์กบุ๊ก Excel ได้ โดยการผ่านเส้นทางไฟล์ เราจะโหลดเวิร์กบุ๊กที่ระบุสำหรับการประมวลผล
ขั้นตอนที่ 3: เริ่มต้นอาร์เรย์ไบต์สำหรับข้อมูลเวิร์กบุ๊ก
ก่อนที่เราจะเริ่มแปลงเวิร์กบุ๊กเป็น CSV เราก็ต้องสร้างอาร์เรย์ไบต์ว่างก่อน ซึ่งจะเก็บข้อมูลเวิร์กชีตทั้งหมดไว้
// อาร์เรย์ 0 ไบต์
byte[] workbookData = new byte[0];
อาร์เรย์ไบต์นี้จะรวมข้อมูลจากแต่ละเวิร์กชีตเข้าเป็นโครงสร้างเดียวที่เราสามารถเขียนลงในไฟล์ในภายหลังได้
ขั้นตอนที่ 4: ตั้งค่าตัวเลือกการบันทึกข้อความ
ตอนนี้เรามาตั้งค่าตัวเลือกในการบันทึกรูปแบบข้อความกัน คุณสามารถเลือกตัวแบ่งแบบกำหนดเองหรือใช้แท็บก็ได้
// ตัวเลือกการบันทึกข้อความ คุณสามารถใช้ตัวคั่นประเภทใดก็ได้
TxtSaveOptions opts = new TxtSaveOptions();
opts.Separator = '\t'; // ตั้งค่าแท็บเป็นตัวคั่น
ในตัวอย่างนี้ เราใช้อักขระแท็บเป็นตัวคั่น คุณสามารถแทนที่'\t'
ด้วยอักขระใดๆ ก็ได้ที่คุณต้องการ เช่น เครื่องหมายจุลภาค (,
) ขึ้นอยู่กับว่าคุณต้องการให้ CSV ของคุณจัดรูปแบบอย่างไร
ขั้นตอนที่ 5: ทำซ้ำในแต่ละเวิร์กชีต
ต่อไปเราจะวนซ้ำผ่านเวิร์กชีตทั้งหมดภายในเวิร์กบุ๊ก และบันทึกแต่ละแผ่นลงในworkbookData
อาร์เรย์ แต่คุณต้องเลือกแผ่นงานที่จะทำงานก่อน
// คัดลอกข้อมูลเวิร์กชีตแต่ละแผ่นในรูปแบบข้อความภายในอาร์เรย์ข้อมูลเวิร์กบุ๊ก
for (int idx = 0; idx < workbook.Worksheets.Count; idx++)
{
// บันทึกแผ่นงานที่ใช้งานอยู่เป็นรูปแบบข้อความ
MemoryStream ms = new MemoryStream();
workbook.Worksheets.ActiveSheetIndex = idx;
workbook.Save(ms, opts);
ลูปนี้จะดำเนินการผ่านแต่ละแผ่นงานในเวิร์กบุ๊กActiveSheetIndex
ถูกตั้งค่าให้บันทึกเวิร์กชีตปัจจุบันทุกครั้งที่ผ่านลูป ผลลัพธ์จะถูกบันทึกลงในหน่วยความจำโดยใช้MemoryStream
.
ขั้นตอนที่ 6: ดึงข้อมูลเวิร์กชีต
หลังจากบันทึกเวิร์กชีตลงในสตรีมหน่วยความจำแล้ว ขั้นตอนถัดไปคือการดึงข้อมูลนี้และผนวกเข้ากับworkbookData
อาร์เรย์
// บันทึกข้อมูลแผ่นงานลงในอาร์เรย์ข้อมูลแผ่นงาน
ms.Position = 0; // รีเซ็ตตำแหน่งของสตรีมหน่วยความจำ
byte[] sheetData = ms.ToArray(); // รับอาร์เรย์ไบต์
ms.Position = 0;
รีเซ็ตตำแหน่งสำหรับการอ่านหลังจากเขียน จากนั้นเราใช้ToArray()
เพื่อแปลงสตรีมหน่วยความจำเป็นอาร์เรย์ไบต์ที่เก็บข้อมูลเวิร์กชีต
ขั้นตอนที่ 7: รวมข้อมูลเวิร์กชีต
ตอนนี้เราจะรวมข้อมูลจากแต่ละเวิร์กชีตเป็นแผ่นเดียวworkbookData
อาร์เรย์ถูกเริ่มต้นไว้ก่อนหน้านี้
// รวมข้อมูลเวิร์กชีตนี้ลงในอาร์เรย์ข้อมูลเวิร์กบุ๊ก
byte[] combinedArray = new byte[workbookData.Length + sheetData.Length];
Array.Copy(workbookData, 0, combinedArray, 0, workbookData.Length);
Array.Copy(sheetData, 0, combinedArray, workbookData.Length, sheetData.Length);
workbookData = combinedArray;
}
เราสร้างอาร์เรย์ใหม่ที่ใหญ่พอที่จะเก็บข้อมูลเวิร์กบุ๊กที่มีอยู่และข้อมูลเวิร์กชีตใหม่ จากนั้นจึงคัดลอกข้อมูลที่มีอยู่และข้อมูลใหม่ลงในอาร์เรย์รวมนี้เพื่อใช้ในภายหลัง
ขั้นตอนที่ 8: บันทึกข้อมูลเวิร์กบุ๊กทั้งหมดลงในไฟล์
ในที่สุดด้วยข้อมูลทั้งหมดรวมกันในของเราworkbookData
อาร์เรย์ เราสามารถบันทึกอาร์เรย์นี้ไปยังเส้นทางไฟล์ที่ระบุได้
//บันทึกข้อมูลสมุดงานทั้งหมดลงในไฟล์
File.WriteAllBytes(dataDir + "out.txt", workbookData);
WriteAllBytes
นำอาร์เรย์ไบต์รวมมาเขียนลงในไฟล์ข้อความชื่อ “out.txt” ในไดเร็กทอรีที่ระบุ
บทสรุป
และแล้วคุณก็ทำได้! คุณได้แปลงสมุดงาน Excel เป็นรูปแบบ CSV สำเร็จแล้วโดยใช้ Aspose.Cells สำหรับ .NET กระบวนการนี้ไม่เพียงแต่มีประสิทธิภาพเท่านั้น แต่ยังช่วยให้จัดการข้อมูล Excel ได้ง่ายขึ้นสำหรับการวิเคราะห์หรือการรายงานเพิ่มเติม ตอนนี้คุณสามารถทำให้กระบวนการประมวลผลข้อมูลของคุณเป็นแบบอัตโนมัติหรือแม้กระทั่งรวมฟังก์ชันนี้เข้ากับแอปพลิเคชันขนาดใหญ่
คำถามที่พบบ่อย
ฉันสามารถใช้ตัวคั่นที่แตกต่างกันสำหรับไฟล์ CSV ได้หรือไม่
ใช่ คุณสามารถเปลี่ยนแปลงได้opts.Separator
เป็นอักขระใดๆ ก็ได้ที่คุณต้องการ เช่น เครื่องหมายจุลภาค หรือ ท่อ
การใช้ Aspose.Cells ฟรีหรือไม่?
Aspose.Cells ไม่ฟรี แต่คุณสามารถทดลองใช้งานฟรีได้ ที่นี่ .
ฉันสามารถบันทึกไฟล์ในรูปแบบใดได้บ้างนอกจาก CSV?
Aspose.Cells ช่วยให้สามารถบันทึกเป็นรูปแบบต่างๆ ได้หลายแบบ รวมถึง XLSX, PDF และอื่นๆ อีกมากมาย
ฉันสามารถประมวลผลไฟล์ Excel ขนาดใหญ่โดยใช้ Aspose.Cells ได้หรือไม่
ใช่ Aspose.Cells ได้รับการออกแบบมาเพื่อจัดการไฟล์ขนาดใหญ่อย่างมีประสิทธิภาพ แต่ประสิทธิภาพอาจขึ้นอยู่กับทรัพยากรระบบ
ฉันสามารถหาเอกสารรายละเอียดเพิ่มเติมได้ที่ไหน
คุณสามารถค้นหาเอกสารและตัวอย่างที่ครอบคลุมได้ที่ เว็บไซต์อ้างอิง .