อ่านข้อมูลในไฟล์ Excel โดยใช้ C#

ไฟล์ MS Excel ใช้กันอย่างแพร่หลายในการจัดเก็บข้อมูลในรูปแบบของแถวและคอลัมน์ ในกรณีต่างๆ ชุดข้อมูลขนาดใหญ่จะถูกรักษาไว้ในไฟล์ Excel บ่อยครั้งที่คุณต้องอ่านไฟล์ Excel และดึงข้อมูลจากภายในแอปพลิเคชัน .NET ของคุณ บทความนี้แสดงวิธีอ่านไฟล์ Excel ใน C# เพื่อให้บรรลุเป้าหมายดังกล่าวภายในขั้นตอนง่ายๆ ไม่กี่ขั้นตอน โดยเฉพาะอย่างยิ่ง ครอบคลุมวิธีการอ่านข้อมูลจากไฟล์ Excel ทั้งหมดหรือเฉพาะแผ่นงานเดียว

ไลบรารี C# เพื่ออ่านไฟล์ Excel - ดาวน์โหลดฟรี

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

PM> Install-Package Aspose.Cells

อ่านไฟล์ Excel ใน C#

ในไฟล์ Excel ข้อมูลจะถูกเก็บไว้ภายในเซลล์โดยแต่ละเซลล์จะถูกระบุด้วยชื่อ (A1, B3 ฯลฯ) หรือดัชนีแถวและคอลัมน์ คอลเลกชันของเซลล์สร้างเวิร์กชีต และไฟล์ Excel อาจมีเวิร์กชีตเดียวหรือหลายเวิร์กชีต สุดท้าย แผ่นงานทั้งหมดรวมกันเป็นสมุดงาน Aspose.Cells for .NET ใช้หลักการตั้งชื่อเดียวกันในการจัดการไฟล์ Excel

ต่อไปนี้เป็นขั้นตอนในการอ่านไฟล์ Excel และรับข้อมูลในภาษา C#

  • โหลดไฟล์ Excel โดยใช้คลาส Workbook
  • สร้างวัตถุของคลาส WorksheetCollection และรับข้อมูลอ้างอิงของเวิร์กชีตโดยใช้ Workbook.Worksheets
  • เริ่มการวนซ้ำเพื่อไปยังเวิร์กชีตทั้งหมดในคอลเลกชันและในการวนซ้ำแต่ละครั้ง ให้ทำตามขั้นตอนต่อไปนี้:
    • รับการอ้างอิงแผ่นงานในวัตถุ แผ่นงาน
    • รับจำนวนแถวและคอลัมน์ข้อมูลในแผ่นงาน
    • เริ่มวนซ้ำสำหรับแถว
    • เริ่มการวนซ้ำที่ซ้อนกันสำหรับคอลัมน์
    • อ่านข้อมูลจากแต่ละเซลล์โดยใช้คุณสมบัติ Worksheet.Cells[i, j].Value

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการอ่านไฟล์ Excel ใน C#

// โหลดไฟล์ Excel
Workbook wb = new Workbook("excel.xlsx");

// รับแผ่นงานทั้งหมด
WorksheetCollection collection = wb.Worksheets;

// วนซ้ำแผ่นงานทั้งหมด
for (int worksheetIndex = 0; worksheetIndex < collection.Count; worksheetIndex++)
{

    // รับแผ่นงานโดยใช้ดัชนี
    Worksheet worksheet = collection[worksheetIndex];

    // พิมพ์ชื่อแผ่นงาน
    Console.WriteLine("Worksheet: " + worksheet.Name);

    // รับจำนวนแถวและคอลัมน์
    int rows = worksheet.Cells.MaxDataRow;
    int cols = worksheet.Cells.MaxDataColumn;

    // วนซ้ำเป็นแถว
   for (int i = 0; i < rows; i++)
    {

        // วนซ้ำแต่ละคอลัมน์ในแถวที่เลือก
       for (int j = 0; j < cols; j++)
        {
            // ค่าพริงเซลล์
            Console.Write(worksheet.Cells[i, j].Value + " | ");
        }
        // พิมพ์ตัวแบ่งบรรทัด
        Console.WriteLine(" ");
    }
}

ต่อไปนี้เป็นผลลัพธ์ที่เราได้รับในคอนโซลหลังจากรันตัวอย่างโค้ดด้านบน

การอ่านข้อมูลในแผ่นงานของไฟล์ Excel ใน C#

การอ่านไฟล์ Excel ใน C#

C# อ่านแผ่นงาน Excel โดยเฉพาะ

คุณยังสามารถอ่านเฉพาะเวิร์กชีตเฉพาะในไฟล์ Excel โดยทำตามขั้นตอนด้านล่าง

  • โหลดไฟล์ Excel โดยใช้คลาส Workbook
  • รับการอ้างอิงแผ่นงานที่ต้องการในวัตถุ Worksheet โดยใช้ Workbook.Worksheets[index]
  • รับจำนวนแถวและคอลัมน์ข้อมูลในแผ่นงาน
  • เริ่มวนซ้ำสำหรับแถว
  • เริ่มการวนซ้ำที่ซ้อนกันสำหรับคอลัมน์
  • อ่านข้อมูลจากแต่ละเซลล์โดยใช้คุณสมบัติ Worksheet.Cells[i, j].Value

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการอ่านข้อมูลจากแผ่นงานเฉพาะใน C#

// โหลดไฟล์ Excel
Workbook wb = new Workbook("excel.xlsx");

// รับแผ่นงานโดยใช้ดัชนี
Worksheet worksheet = wb.Worksheets[0];

// พิมพ์ชื่อแผ่นงาน
Console.WriteLine("Worksheet: " + worksheet.Name);

// รับจำนวนแถวและคอลัมน์
int rows = worksheet.Cells.MaxDataRow;
int cols = worksheet.Cells.MaxDataColumn;

// วนซ้ำเป็นแถว
for (int i = 0; i < rows; i++)
{
    // วนซ้ำแต่ละคอลัมน์ในแถวที่เลือก
   for (int j = 0; j < cols; j++)
    {
        // ค่าพริงเซลล์
        Console.Write(worksheet.Cells[i, j].Value + " | ");
    }
    // พิมพ์ตัวแบ่งบรรทัด
    Console.WriteLine(" ");
}

C# Excel Reader API - รับใบอนุญาตฟรี

คุณสามารถใช้ Aspose.Cells for .NET ได้โดยไม่มีข้อจำกัดในการประเมินโดยรับ ใบอนุญาตชั่วคราวฟรี

บทสรุป

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

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