سورس کد خواندن فایل اکسل با C# و VB.NET: راهنمای کامل و جامع


در دنیای برنامه‌نویسی، کار با فایل‌های اکسل یکی از نیازهای رایج توسعه‌دهندگان است، چه در پروژه‌های ویندوز فرم، چه در برنامه‌های وب. این نیاز ممکن است شامل خواندن داده‌ها، استخراج اطلاعات، یا ویرایش محتوا باشد. در این مقاله، قصد داریم به طور کامل و جامع، نحوه‌ی خواندن فایل اکسل با زبان‌های C# و VB.NET، بدون استفاده از کتابخانه‌های خارجی، ولی با بهره‌گیری از امکانات داخلی و APIهای موجود در ویندوز، را شرح دهیم.
در ابتدای کار، باید بدانید که فایل‌های اکسل معمولاً با فرمت‌های XLS و XLSX ذخیره می‌شوند. فایل‌های XLS قدیمی‌تر، ساختار متفاوتی دارند نسبت به فایل‌های XLSX که بر پایه‌ی XML است. بنابراین، نحوه‌ی خواندن این فایل‌ها ممکن است متفاوت باشد. اما، معمول‌ترین روش برای خواندن فایل‌های اکسل در پروژه‌های دات‌نت، استفاده از COM Interop است، که با فعال کردن مرجع Microsoft Excel Object Library، امکان دسترسی مستقیم به محتوا و ساختار فایل‌های اکسل را فراهم می‌کند.
استفاده از COM Interop در پروژه‌های C# و VB.NET
یکی از راه‌های مرسوم و قدرتمند برای خواندن فایل‌های اکسل، بهره‌گیری از COM Interop است. این روش، به برنامه اجازه می‌دهد که به صورت مستقیم با نرم‌افزار اکسل ارتباط برقرار کند، فایل‌ها را باز کند، داده‌ها را بخواند و حتی ویرایش کند. البته، این روش نیازمند نصب نرم‌افزار اکسل بر روی سیستم است و در محیط‌های سرور ممکن است مشکلاتی به وجود بیاید.
در ادامه، نمونه کدهای مربوطه در هر دو زبان را ارائه می‌دهیم.
کد نمونه در C#
csharp  

using System;

using Microsoft.Office.Interop.Excel;
namespace ReadExcelSample

{

class Program

{

static void Main(string[] args)

{

Application excelApp = new Application();

Workbook workbook = null;

Worksheet worksheet = null;
try

{

// مسیر فایل اکسل

string filePath = @"C:\Path\To\Your\File.xlsx";
// باز کردن فایل اکسل

workbook = excelApp.Workbooks.Open(filePath);

worksheet = (Worksheet)workbook.Sheets[1]; // خواندن اولین شیت
// خواندن داده‌های سلول A1

Range cell = worksheet.Range["A1"];

Console.WriteLine("مقدار سلول A1: " + cell.Value
  1. ToString());
    // خواندن داده‌های محدوده‌ای

Range range = worksheet.UsedRange;

object[,] values = range.Value2 as object[,];
int rows = values.GetLength(0);

int cols = values.GetLength(1);
for (int i = 1; i <= rows; i++)

{

for (int j = 1; j <= cols; j++)

{

Console.Write($"{values[i, j]} \t");

}

Console.WriteLine();

}

}

catch (Exception ex)

{

Console.WriteLine("خطا: " + ex.Message);

}

finally

{

// بستن فایل و آزادسازی منابع

if (workbook != null)

{

workbook.Close(false);

}

excelApp.Quit();

}

}

}

}


در این کد، ابتدا برنامه‌ی اکسل را راه‌اندازی می‌کنیم، فایل مورد نظر را باز می‌نماییم، سپس اولین شیت را انتخاب می‌کنیم. پس از آن، می‌توانیم به سلول‌های خاص دسترسی پیدا کنیم یا داده‌های محدوده را برای تجزیه و تحلیل استخراج کنیم. پس از اتمام کار، باید منابع مربوطه را آزاد کنیم تا از نشت حافظه جلوگیری شود.
کد نمونه در VB.NET
vbnet  

Imports Microsoft.Office.Interop.Excel
Module Module1

Sub Main()

Dim excelApp As New Application()

Dim workbook As Workbook = Nothing

Dim worksheet As Worksheet = Nothing
Try

Dim filePath As String = "C:\Path\To\Your\File.xlsx"
' باز کردن فایل اکسل

workbook =... ← ادامه مطلب در magicfile.ir