สเปรดชีต MS Excel ใช้กันอย่างแพร่หลายเพื่อเก็บข้อมูลขนาดเล็ก ขนาดกลาง หรือขนาดใหญ่ ในหลายกรณี สเปรดชีตทำหน้าที่เป็นฐานข้อมูลเพื่อเก็บข้อมูลแอปพลิเคชัน ในสถานการณ์เช่นนี้ คุณอาจจำเป็นต้องอ่านข้อมูลที่จัดเก็บไว้ในไฟล์ Excel จากภายในแอปพลิเคชันเว็บหรือเดสก์ท็อปของคุณ สำหรับกรณีดังกล่าว บทความนี้ครอบคลุมวิธีการแปลงข้อมูล Excel เป็น DataTables ใน C#

C # Excel เป็น API การแปลง DataTable

Aspose.Cells for .NET เป็นไลบรารีคลาสที่ให้คุณใช้คุณลักษณะการทำงานอัตโนมัติของ Excel ภายในแอปพลิเคชัน .NET นอกจากนี้ API ยังช่วยให้คุณสามารถส่งออกข้อมูลจากแผ่นงาน Excel ไปยัง ADO.NET DataTable ได้ภายในไม่กี่ขั้นตอน คุณสามารถ ดาวน์โหลด API หรือติดตั้งผ่าน NuGet

PM> Install-Package Aspose.Cells

แปลง Excel เป็น DataTable ใน C#

อาจมีสถานการณ์ที่เป็นไปได้สองกรณีเมื่อส่งออกข้อมูลจากเวิร์กชีต Excel ไปยัง DataTables: ข้อมูลอาจพิมพ์อย่างเข้มงวดหรือไม่เข้มงวดก็ได้ ในทั้งสองกรณี คุณสามารถแปลง Excel เป็น DataTable ได้ มาดูวิธีจัดการกับสถานการณ์ดังกล่าวข้างต้น

แปลงข้อมูล Excel ที่พิมพ์อย่างแน่นหนาเป็น DataTable ใน C

ข้อมูลที่พิมพ์มากหมายความว่าค่าในคอลัมน์เดียวเป็นของประเภทข้อมูลเฉพาะ ในกรณีดังกล่าว คุณสามารถส่งออกข้อมูล Excel ไปยัง DataTable ใน C# ได้โดยใช้ขั้นตอนต่อไปนี้

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการส่งออก Excel ไปยัง DataTable

// สร้างสตรีมไฟล์ที่มีไฟล์ Excel ที่จะเปิด
FileStream fstream = new FileStream("Excel.xlsx", FileMode.Open);

// สร้างอินสแตนซ์วัตถุสมุดงาน
//การเปิดไฟล์ Excel ผ่านสตรีมไฟล์
Workbook workbook = new Workbook(fstream);

// เข้าถึงแผ่นงานแรกในไฟล์ Excel
Worksheet worksheet = workbook.Worksheets[0];

// ส่งออกเนื้อหาของ 2 แถวและ 2 คอลัมน์โดยเริ่มจากเซลล์ที่ 1 ไปยัง DataTable
DataTable dataTable = worksheet.Cells.ExportDataTable(0, 0,2, 2, true);

// ผูก DataTable กับ DataGrid
dataGridView1.DataSource = dataTable;

// ปิดการสตรีมไฟล์เพื่อเพิ่มทรัพยากรทั้งหมด
fstream.Close();

แปลงข้อมูล Excel ที่พิมพ์ไม่แข็งแรงเป็น DataTable ใน C

ตอนนี้ มาดูอีกกรณีหนึ่งเมื่อค่าในเวิร์กชีตไม่ได้พิมพ์อย่างเข้มงวด หมายความว่าไม่ได้อยู่ในประเภทข้อมูลใดประเภทหนึ่ง ต่อไปนี้เป็นขั้นตอนในการส่งออกข้อมูล Excel ไปยัง DataTable ในกรณีนี้

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีส่งออกข้อมูลที่พิมพ์ไม่แน่นหนาจาก Excel ไปยัง DataTable ใน C#

// สร้างสตรีมไฟล์ที่มีไฟล์ Excel ที่จะเปิด
FileStream fstream = new FileStream("Excel.xlsx", FileMode.Open);

// สร้างอินสแตนซ์วัตถุสมุดงาน
//การเปิดไฟล์ Excel ผ่านสตรีมไฟล์
Workbook workbook = new Workbook(fstream);

// เข้าถึงแผ่นงานแรกในไฟล์ Excel
Worksheet worksheet = workbook.Worksheets[0];

// ส่งออกเนื้อหาของ 2 แถวและ 2 คอลัมน์โดยเริ่มจากเซลล์ที่ 1 ไปยัง DataTable
DataTable dataTable = worksheet.Cells.ExportDataTableAsString(0, 0, 2, 2, true);

// ผูก DataTable กับ DataGrid
dataGridView1.DataSource = dataTable;

// ปิดการสตรีมไฟล์เพื่อเพิ่มทรัพยากรทั้งหมด
fstream.Close();

รับใบอนุญาตฟรี

คุณสามารถ รับใบอนุญาตชั่วคราวได้ฟรี เพื่อทดลองใช้ API โดยไม่มีข้อจำกัดในการประเมิน

บทสรุป

ในบทความนี้ คุณได้เรียนรู้วิธีการส่งออกหรือแปลงข้อมูล Excel เป็น ADO.NET DataTables โดยใช้ C# บทช่วยสอนทีละขั้นตอนและตัวอย่างโค้ดได้แสดงวิธีจัดการกับข้อมูลที่พิมพ์อย่างเข้มงวดและไม่ใช่ข้อมูลที่พิมพ์อย่างเข้มงวดในเวิร์กชีต คุณสามารถสำรวจเพิ่มเติมเกี่ยวกับ C# Excel API โดยใช้ เอกสารประกอบ

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