ذخیره اطلاعات در فایل Excell در Asp.net core
سلام
چجوری میشه در Asp.net core اطلاعات رو از دیتابیس خوند و در یک فایل اکسل ذخیره کرد.
میخوام یک دکمه داشته باشم که وقتی روش کلیک میشه یک فایل اکسل ایجاد کنه و بعد از اینکه اطلاعات رو داخل فایل اکسل ریخت اون فایل دانلود بشه
خروجی گرفتن از اطلاعات دیتابیس در فایل Excell در Asp.net core
برای استفاده از فایل اکسل در Asp.net core می تونید مراحل زیر رو انجام بدید
استفاده از پکیج DotNetCore.NPOI
خب ابتدا یک پروژه خالی رو ایجاد کنید، حالا در خط فرمان با استفاده از دستور زیر پکیج مورد نظر رو نصب کنید
PM> Install-Package DotNetCore.NPOI
از این پکیج برای کار با فایلها و داکیومنت های Office استفاده میشه.
خب حالا با استفاده از این کتابخانه 2 کار رو میشه انجام داد
- import فایل اکسل : شما میتونید یک فایل اکسل رو انتخاب کنید و محتویات درون اون رو داخل دیتابیس خودتون ذخیره کنید.
- export فایل اکسل : شما می تونید اطلاعات دیتابیس رو داخل یک فایل اکسل بریزید و اون فایل رو دانلود کنید.
چون سوال شما در مورد ایجاد یک فایل اکسل در Asp.net core و دانلود اون هست پس Export کردن فایل اکسل رو توضیح میدم.
مرحله اول:
ابندا در پوشه wwwroot یک فایل با فرمت xls یا xlsx ایجاد کنید. این فایل در واقع همان فایل اکسل می باشد که به عنوان یک نمونه و به صورت خالی ایجاد می کنیم.
خب حالا باید در کنترلری که قصد دارید عملیات ذخیره اطلاعات دیتابیس در اکسل رو انجام بدید از اینترفیس IHostingEnvironment استفاده کنید. با استفاده از این کتابخانه می تونید به محتویات موجود در root سایت دسترسی داشته باشید.
private IHostingEnvironment _hostingEnvironment;
public ExcellController(IHostingEnvironment hostingEnvironment)
{
_hostingEnvironment = hostingEnvironment;
}
نکته : کتابخانه NPOI هم از فایل های xls و هم از فایلهای xlsx پشتیبانی می کند.
خب حالا به کدهای زیر دقت کنید.
کدهای Html
<a asp-controller="Excell" asp-action="ExportToExcell">
ارسال شماره تماس به اکسل
</a>
کدهای سمت کنترلر
public async Task<IActionResult> ExportToExcell()
{
string sWebRootFolder = _hostingEnvironment.WebRootPath;
string sFileName = @"phonenolist.xlsx";
string URL = string.Format("{0}://{1}/{2}", Request.Scheme, Request.Host, sFileName);
FileInfo file = new FileInfo(Path.Combine(sWebRootFolder, sFileName));
var memory = new MemoryStream();
using (var fs = new FileStream(Path.Combine(sWebRootFolder, sFileName), FileMode.Create, FileAccess.Write))
{
IWorkbook workbook;
workbook = new XSSFWorkbook();
ISheet excelSheet = workbook.CreateSheet("Demo");
IRow row = excelSheet.CreateRow(0);
row.CreateCell(0).SetCellValue("ID");
row.CreateCell(1).SetCellValue("Name");
row.CreateCell(2).SetCellValue("Age");
row = excelSheet.CreateRow(1);
row.CreateCell(0).SetCellValue(1);
row.CreateCell(1).SetCellValue("Kane Williamson");
row.CreateCell(2).SetCellValue(29);
row = excelSheet.CreateRow(2);
row.CreateCell(0).SetCellValue(2);
row.CreateCell(1).SetCellValue("Martin Guptil");
row.CreateCell(2).SetCellValue(33);
row = excelSheet.CreateRow(3);
row.CreateCell(0).SetCellValue(3);
row.CreateCell(1).SetCellValue("Colin Munro");
row.CreateCell(2).SetCellValue(23);
workbook.Write(fs);
}
using (var stream = new FileStream(Path.Combine(sWebRootFolder, sFileName), FileMode.Open))
{
await stream.CopyToAsync(memory);
}
memory.Position = 0;
return File(memory, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", sFileName);
}
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- نمایش صفحه در پنجره جدید با کلیک روی لینک (تگ a) در Asp
- افزودن مقادیر به صورت دستی به List دریافت شده از ریپازیتوری
- کار با CkEditor با قابلیت آپلود عکس
- خطا در ایجاد migration در Asp.net core
- تفاوت های Asp.net core و Asp.net mvc چیه؟
- دلیل اسپم شدن ایمیل های ارسالی از سرور
- نحوه لایه بندی پروژه Core و اضافه کردن به IIS
- ارسال ایمیل در Asp.net core
- آیا میشه در mvc core از کامپونت استفاده کرد
- آپلود فایل در Asp.net core چگونه است؟
- حذف کامل یک رکورد در جدول ریلیشن شده
- اشکال در آپلود فایل ویدیو در mvc core 2