وبلاگ تیم IranDNN

rss

در این وبلاگ آخرین رویدادهای ما را دنبال کنید و ما را در توسعه یاری دهید.

نحوه کار با کتابخانه EPPlus

EPPlus یکی از کتابخانه های دات نت است که کار اصلی آن خواندن و نوشتن فایلهای اکسل با فرمت XLSX در محیط دات نت می باشد. لذا با استفاده از این کتابخانه شما قادر خواهید بود تا فایل های اکسل را مطابق آنچه مدنظر دارید به صورت runtime تولید، ذخیره یا حتی برای دانلود آماده نمایید. همچنین شما می توانید فایل های اکسل موجود را توسط توابع این کتابخانه باز نموده و محتویات آنها را استخراج نمایید. در زیر مثالی ساده از نحوه تولید و آماده سازی جهت دانلود شرح داده خواهد شد.

مثالی از نحوه خروجی یک spreadsheet ساده

در ابتدا یک object از کلاس FileInfo ایجاد نموده و محل ذخیره سازی فایل را مشخص می نمایید.

// Set the file name and get the output directory
var fileName = "Example-" + DateTime.Now.ToString("yyyy-MM-dd--hh-mm-ss") + ".xlsx";
var outputDir = context.Server.MapPath("/media/generatedfiles/");

// Create the file using the FileInfo object
var file = new FileInfo(outputDir +fileName);

در مرحله بعدی یک object از کلاس ExcelPackage ایجاد و با افزودن ExcelWorksheet به آن کار اصلی آغاز خواهد شد.

// Create the package and make sure you wrap it in a using statement
using (var package = new ExcelPackage(file))
{
     // add a new worksheet to the empty workbook
     ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Sales list - " + DateTime.Now.ToShortDateString());

    // --------- Data and styling goes here -------------- //

}

کدهای زیر می بایست در بلاک using قرار بگیرد. ایجاد ظاهری مناسب برای sheet بسیار ساده است.

// Add some formatting to the worksheet
worksheet.TabColor = Color.Blue;
worksheet.defaultRowHeight = 12;
worksheet.HeaderFooter.firstFooter.LeftAlignedText = string.Format("Generated: {0}", DateTime.Now.ToShortDateString());
worksheet.Row(1).Height = 20;
worksheet.Row(2).Height = 18;

اکنون وقت افزودن سطرها و ستون های فایل اکسل است که در مثال این فایل دارای دو سطر و دو ستون خواهد بود. با استفاده از حلقه های تکرار شونده (مثل foreach) می توانید سطرها و ستون های خود را به سادگی ایجاد نمایید.

// Start adding the header
// First of all the first row
worksheet.Cells[1, 1].Value = "Company name";
worksheet.Cells[1, 2].Value = "Address";

// Add the second row of header data
worksheet.Cells[2, 1].Value = "Vehicle registration plate";
worksheet.Cells[2, 2].Value = "Vehicle brand";

ایجاد ظاهری آراسته و مناسب برای سلول های این فایل امری است بسیار ساده. در این مثال، موارد تعریف شده از سطر اول و ستون اول تا سطر اول و ستون دوم (یعنی فقط سر ستون ها) برای نمایش دادن هدر اعمال خواهد شد. به همین ترتیب شما قادر خواهید بود تا برای سلول های دیگر نیز قالبی معین اعمال نمایید.

//Ok now format the first row of the heade, but only the first two columns;
using (var range = worksheet.Cells[1, 1, 1, 2])
{
    range.Style.Font.Bold = true;
    range.Style.Fill.PatternType = ExcelFillStyle.Solid;
    range.Style.Fill.BackgroundColor.SetColor(Color.Black);
    range.Style.Font.Color.SetColor(Color.WhiteSmoke);
    range.Style.ShrinkToFit = false;
}

در نهایت قبل از ذخیره سند، پیرایش و پیکربندی نهایی را اعمال کنید.

// Fit the columns according to its content
worksheet.Column(1).AutoFit();
worksheet.Column(2).AutoFit();
worksheet.Column(3).AutoFit();

// Set some document properties
package.Workbook.Properties.Title = "Sales list";
package.Workbook.Properties.Author = "Gustaf Lindqvist @ Ted & Gustaf";
package.Workbook.Properties.Company = "Ted & Gustaf";

// save our new workbook and we are done!
package.Save();

//-------- Now leaving the using statement
} // Outside the using statement

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

Byte[] bin = package.GetAsByteArray();

Response.ClearHeaders();
Response.ClearContent();
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("Content-Disposition", string.Format("attachment;filename={0}", Nombre_Del_Libro + ".xlsx"));
Response.BinaryWrite(bin);
Response.Flush();
Response.End();

شایان ذکر است که این یکی از ساده ترین کتابخانه های دات نت برای استفاده در این زمینه می باشد.

نمایش 0 نظر
your Comment will be showing after administrator's approval







b i u quote


Save Comment

برچسب‌ها

واتسون Answers ASP.net asp.net core asp.net mvc asp.net webforms bms business management C# captcha EPPlus Excel HotCake In-Memory Caching portal RUP Scrum security code Successful Website support system use case leveling Usecase Model web portal zamanak آموزش مجازی اپلیکیشن های هوشمند ارتباط با مشتری استراتژی سایت استودیو دانش پاسپورت ایران پرتال پرتال مشتریان پرسشنامه پیام صوتی تحصیل در خارج توانایی پاسخ گویی جشنواره خرید آنلاین خودرو خودرو تویوتا دات نت نیوک زددگی زمانک سامانه bms سامانه پشتیبانی آنلاین سطوح ابر سطوح دریا سطوح ماهی سطوح نمودار موارد کاربرد سفر بودن ویزا سند نمودار مورد کاربرد سیستم ثبت سفارش خودرو شهرداری تهران طراحی وب فرآیند یکپارچه رشنال فرق بین متدولوژی RUP و اسکرام فهم زبان طبیعی فکس فکس خودکار گسترش مدل های سفارشی ماژول ماژول استخدام ماژول رزومه متدولوژی RUP متدولوژی اسکرام مخاطبین سایت مدیریت کسب و کار مزایای فرآیند RUP معماری سه لایه معماری نرم افزار میزکار مشتری نرم افزار نرم افزار LMS نرم افزار آموزش مجازی نوآور همراه هات کیک وب سایت موفق ویزا کار کپچا کلمه امنیتی
بالا