"

خواندن فایل اکسل در سی‌ شارپ,روش‌های خواندن فایل اکسل در سی‌شارپ,خواندن اطلاعات از فایل اکسل در سی شارپ

خواندن فایل اکسل در سی‌ شارپ

خواندن فایل اکسل در سی‌شارپ با استفاده از EPPlus، ClosedXML و OleDb برای استخراج، پردازش و مدیریت داده‌ها می باشد.

تیم تحریریه
6
0
02 تیر 1405
لینک کوتاه

خواندن فایل اکسل در سی‌ شارپ

در بسیاری از نرم‌افزارهای سازمانی، فروشگاهی، حسابداری و مدیریتی، اطلاعات در قالب فایل‌های اکسل ذخیره و تبادل می‌شوند.
به همین دلیل یکی از نیازهای مهم برنامه‌نویسان سی‌شارپ، توانایی خواندن اطلاعات از فایل‌های Excel و پردازش آن‌ها در برنامه است.
با استفاده از سی‌شارپ می‌توان داده‌های موجود در فایل‌های اکسل را دریافت، اعتبارسنجی، ویرایش و در پایگاه داده ذخیره کرد.

فایل‌های اکسل معمولاً با فرمت‌های XLS و XLSX ذخیره می‌شوند.
فرمت XLS مربوط به نسخه‌های قدیمی Microsoft Excel و فرمت XLSX مربوط به نسخه‌های جدیدتر است.
برای کار با این فایل‌ها در سی‌شارپ کتابخانه‌های مختلفی وجود دارد که فرآیند خواندن اطلاعات را بسیار ساده می‌کنند.


خواندن فایل اکسل در سی‌ شارپ

اهمیت خواندن فایل اکسل در سی‌شارپ

امروزه بسیاری از شرکت‌ها اطلاعات خود را در قالب فایل‌های اکسل نگهداری می‌کنند.
بنابراین نرم‌افزارها باید بتوانند این اطلاعات را دریافت و پردازش کنند.

برخی کاربردهای مهم عبارتند از:

  • ورود اطلاعات محصولات

  • ثبت اطلاعات مشتریان

  • دریافت لیست کارکنان

  • انتقال داده‌ها به SQL Server

  • تهیه گزارش‌های مدیریتی

  • پردازش اطلاعات مالی و حسابداری

  • مهاجرت داده‌ها از سیستم‌های قدیمی




اهمیت خواندن فایل اکسل در سی‌شارپ

روش‌های خواندن فایل اکسل در سی‌شارپ

برای خواندن فایل اکسل در #C روش‌های مختلفی وجود دارد:

  • استفاده از Microsoft Office Interop

  • استفاده از OleDb

  • استفاده از EPPlus

  • استفاده از ClosedXML

  • استفاده از NPOI

  • استفاده از Open XML SDK

هر کدام مزایا و معایب خاص خود را دارند.




روش‌های خواندن فایل اکسل در سی‌شارپ

استفاده از EPPlus  در سی شارپ

یکی از محبوب‌ترین کتابخانه‌های کار با اکسل در سی‌شارپ، EPPlus است.

مزایای آن:

  • سرعت بالا

  • نصب آسان از طریق NuGet

  • پشتیبانی از XLSX

  • عدم نیاز به نصب Microsoft Office

برای نصب:

 

Install-Package EPPlus

 

یا:

 

dotnet add package EPPlus

خواندن اطلاعات از فایل اکسل در سی شارپ

نمونه کد:

using OfficeOpenXml;

using System.IO;




var file = new FileInfo(@"D:\Users.xlsx");




ExcelPackage.LicenseContext = LicenseContext.NonCommercial;




using (var package = new ExcelPackage(file))

{

ExcelWorksheet sheet = package.Workbook.Worksheets[0];




int rowCount = sheet.Dimension.Rows;




for (int row = 2; row <= rowCount; row++)

{

string name = sheet.Cells[row, 1].Text;

string family = sheet.Cells[row, 2].Text;




Console.WriteLine($"{name} {family}");

}

}

 

در این مثال اطلاعات ستون‌های اول و دوم خوانده شده و در خروجی نمایش داده می‌شوند.




 


آیا به دنبال یک فرصت عالی برای یادگیری برنامه
‌نویسی هستید؟ 🚀

با دوره آموزشی سی‌شارپ ما، شما می‌توانید مهارت‌های خود را به سطح جدیدی ارتقا دهید! این دوره به‌طور کامل طراحی شده تا به شما کمک کند تا از مبتدی تا پیشرفته در دنیای برنامه‌نویسی سی‌شارپ پیش بروید.

👨‍🏫 چرا دوره ما را انتخاب کنید؟

  • محتوای جامع و عملی: با پروژه‌های واقعی و تمرینات عملی، یادگیری را به تجربه‌ای جذاب تبدیل کنید.
  • مدرس مجرب: از تجربه و دانش مدرس حرفه‌ای بهره‌مند شوید که شما را در هر مرحله از یادگیری راهنمایی می‌کنند.
  • پشتیبانی ۲۴/۷: هر زمان که سوالی داشتید، ما در کنار شما خواهیم بود تا به شما کمک کنیم.
  • دسترسی مادامالعمر: به محتوای دوره دسترسی دائمی داشته باشید و هر زمان که خواستید، می‌توانید به آن مراجعه کنید.

💡 فرصت را از دست ندهید!

بایادگیری سی‌شارپ، می‌توانید در دنیای فناوری اطلاعات به یک متخصص تبدیل شوید و در پروژه‌های جذاب و چالش‌برانگیز شرکت کنید.

همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آینده‌ای روشن‌تر بردارید!

شرکت در دوره آموزش برنامه نویسی سی شارپ









خواندن همه سطرهای فایل

گاهی تعداد ستون‌ها مشخص نیست.

 

int rows = sheet.Dimension.Rows;

int cols = sheet.Dimension.Columns;




for (int row = 1; row <= rows; row++)

{

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

{

Console.Write(sheet.Cells[row, col].Text + "\t");

}




Console.WriteLine();

}

 

این روش کل فایل اکسل را پیمایش می‌کند.

 

استفاده از ClosedXML در سی شارپ

ClosedXML یکی دیگر از کتابخانه‌های محبوب برای کار با اکسل است.

نصب:

 

Install-Package ClosedXML

 

نمونه کد:

 

using ClosedXML.Excel;




using (var workbook = new XLWorkbook(@"D:\Users.xlsx"))

{

var worksheet = workbook.Worksheet(1);




foreach (var row in worksheet.RowsUsed())

{

string name = row.Cell(1).GetValue<string>();

string family = row.Cell(2).GetValue<string>();




Console.WriteLine(name + " " + family);

}

}

 

این کتابخانه رابط کاربری ساده و خوانایی بالایی دارد.

 

استفاده از Microsoft Office Interop

این روش مستقیماً با نرم‌افزار Excel ارتباط برقرار می‌کند.

برای استفاده باید Microsoft Excel روی سیستم نصب باشد.

نصب:

 

Install-Package Microsoft.Office.Interop.Excel

 

نمونه کد:

using Excel = Microsoft.Office.Interop.Excel;




Excel.Application app = new Excel.Application();




Excel.Workbook workbook =

app.Workbooks.Open(@"D:\Users.xlsx");




Excel.Worksheet worksheet =

workbook.Sheets[1];




string value =

worksheet.Cells[1, 1].Value.ToString();




Console.WriteLine(value);




workbook.Close();

app.Quit();

معایب Interop در سی شارپ

  • نیاز به نصب Office
  • مصرف حافظه بیشتر
  • سرعت پایین‌تر
  • مناسب نبودن برای سرور

به همین دلیل معمولاً EPPlus یا ClosedXML پیشنهاد می‌شوند.

استفاده از OleDb در سی شارپ

یکی از روش‌های قدیمی برای خواندن فایل اکسل، استفاده از OleDb است.

در این روش فایل اکسل مانند یک پایگاه داده در نظر گرفته می‌شود.

نمونه Connection String:

 

string connStr =

@"Provider=Microsoft.ACE.OLEDB.12.0;

Data Source=D:\Users.xlsx;

Extended Properties='Excel 12.0 Xml;HDR=YES'";

سپس می‌توان کوئری اجرا کرد:

 

SELECT * FROM [Sheet1$]

 

و داده‌ها را در DataTable بارگذاری نمود.

 

ذخیره اطلاعات اکسل در DataTable

بسیاری از برنامه‌ها اطلاعات را در DataTable ذخیره می‌کنند.

مثال:

 

DataTable dt = new DataTable();




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

{

dt.Columns.Add(sheet.Cells[1, col].Text);

}




for (int row = 2; row <= rows; row++)

{

DataRow dr = dt.NewRow();




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

{

dr[col - 1] = sheet.Cells[row, col].Text;

}




dt.Rows.Add(dr);

}

این روش برای نمایش اطلاعات در DataGridView بسیار مناسب است.

 

نمایش اطلاعات اکسل در DataGridView

در برنامه‌های Windows Forms می‌توان اطلاعات را مستقیماً نمایش داد.

 

dataGridView1.DataSource = dt;

 

به این ترتیب تمامی داده‌های اکسل در جدول نمایش داده می‌شوند.

 

خواندن فایل اکسل و ذخیره در SQL Server

یکی از کاربردهای مهم، انتقال اطلاعات از اکسل به پایگاه داده است.

مثال:

foreach (DataRow row in dt.Rows)

{

SqlCommand cmd = new SqlCommand(

"INSERT INTO Users(Name,Family) VALUES(@n,@f)",

connection);




cmd.Parameters.AddWithValue("@n", row["Name"]);

cmd.Parameters.AddWithValue("@f", row["Family"]);




cmd.ExecuteNonQuery();

}

 

این فرآیند معمولاً برای ورود انبوه اطلاعات استفاده می‌شود.

 

مدیریت خطاها خواندن فایل اکسل در سی‌ شارپ

هنگام خواندن فایل اکسل ممکن است خطاهای مختلفی رخ دهد.

برخی از رایج‌ترین خطاها:

  • فایل وجود ندارد

  • فایل توسط برنامه دیگری باز است

  • ساختار فایل خراب است

  • دسترسی کافی وجود ندارد

  • فرمت فایل نامعتبر است

 

نمونه:

try

{

// Read Excel

}

catch(Exception ex)

{

Console.WriteLine(ex.Message);

}

مدیریت خطاها خواندن فایل اکسل در سی‌ شارپ


اعتبارسنجی داده‌ها

قبل از ذخیره اطلاعات بهتر است داده‌ها بررسی شوند.

مثال:

 

if(string.IsNullOrWhiteSpace(name))

{

continue;

}

یا:

 

if(!int.TryParse(age, out int result))

{

continue;

}

 

این کار از ورود داده‌های اشتباه جلوگیری می‌کند.

 

خواندن چند Sheet در سی شارپ

گاهی فایل اکسل دارای چندین Sheet است.

 

foreach(var sheet in package.Workbook.Worksheets)

{

Console.WriteLine(sheet.Name);

}

و برای خواندن:

 

var sheet =

package.Workbook.Worksheets["Users"];

خواندن سلول خاص در سی‌ شارپ

برای دسترسی مستقیم به یک سلول:

 

string value =

sheet.Cells["A1"].Text;

 

یا:

 

string value =

sheet.Cells[1,1].Text;

خواندن محدوده‌ای از سلول‌ها

var range =

sheet.Cells["A1:D10"];

 

این روش برای پردازش بخش خاصی از فایل کاربرد دارد.

 

بهینه‌سازی عملکرد خواندن فایل اکسل در سی‌ شارپ

در فایل‌های بزرگ باید بهینه‌سازی انجام شود.

راهکارها:

 

  • خواندن فقط ستون‌های موردنیاز

  • عدم استفاده از حلقه‌های اضافی

  • استفاده از DataReader

  • آزادسازی منابع

  • پردازش دسته‌ای داده‌ها

 

این موارد سرعت برنامه را افزایش می‌دهند.

نکات امنیتی خواندن فایل اکسل در سی‌ شارپ

هنگام دریافت فایل از کاربران:

 

  • فرمت فایل را بررسی کنید.
  • حجم فایل را محدود کنید.
  • فایل را اسکن امنیتی کنید.
  • داده‌های ورودی را اعتبارسنجی کنید.
  • از اجرای فایل‌های ناشناس جلوگیری کنید.

 

این اقدامات امنیت نرم‌افزار را افزایش می‌دهند.

 

مزایای استفاده از EPPlus در سی شارپ

دلایل محبوبیت EPPlus:

  • سرعت بالا
  • یادگیری آسان
  • پشتیبانی کامل از XLSX
  • عدم نیاز به Office
  • مستندات مناسب
  • سازگاری با .NET Framework و .NET Core

به همین دلیل در بسیاری از پروژه‌های حرفه‌ای مورد استفاده قرار می‌گیرد.

 

جمع‌بندی

خواندن فایل اکسل در سی‌شارپ یکی از قابلیت‌های پرکاربرد در توسعه نرم‌افزارهای سازمانی و تجاری است.
با استفاده از کتابخانه‌هایی مانند EPPlus، ClosedXML، NPOI و Open XML SDK می‌توان اطلاعات موجود در فایل‌های Excel را به سادگی استخراج و پردازش کرد.
این اطلاعات می‌توانند در DataTable ذخیره شوند، در DataGridView نمایش داده شوند یا مستقیماً به SQL Server منتقل شوند.
انتخاب کتابخانه مناسب به نیاز پروژه، حجم داده‌ها و محیط اجرایی بستگی دارد، اما در اغلب پروژه‌های امروزی EPPlus و ClosedXML به دلیل سادگی و عملکرد مناسب گزینه‌های بسیار محبوبی محسوب می‌شوند.

محصولات مرتبط

کاربران ما

شما هم نظرتون با ما دریاره “خواندن فایل اکسل در سی‌ شارپ” اشتراک بزارید

برای ارسال نظر لطفا ورود یا ثبت نام کنید

منو