خواندن فایل اکسل در سی شارپ
خواندن فایل اکسل در سیشارپ با استفاده از EPPlus، ClosedXML و OleDb برای استخراج، پردازش و مدیریت دادهها می باشد.
خواندن فایل اکسل در سی شارپ
در بسیاری از نرمافزارهای سازمانی، فروشگاهی، حسابداری و مدیریتی، اطلاعات در قالب فایلهای اکسل ذخیره و تبادل میشوند.
به همین دلیل یکی از نیازهای مهم برنامهنویسان سیشارپ، توانایی خواندن اطلاعات از فایلهای 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 به دلیل سادگی و عملکرد مناسب گزینههای بسیار محبوبی محسوب میشوند.



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