以前 Asp.Net MVC 有这个第三方库,可以轻松上传和读取名为 Excel Data Reader 的 Excel 文件。我们不需要将文件保存在本地磁盘上,这很好,因为我的应用程序需要在 Azure 上运行。
但是,我们现在正在将此功能移植到 asp.net core 2 中,从搜索结果来看,这似乎是不可能的。有人知道任何允许我这样做的图书馆吗?请注意,我不是在寻找从磁盘读取的解决方案。我想上传一个excel文件并直接从流中读取数据。
最佳答案
I Could Read Excel File In 'Asp .Net Core' By This Code.
使用 EPPlus.Core 导入和导出数据.
[HttpPost]
public IActionResult ReadExcelFileAsync(IFormFile file)
{
if (file == null || file.Length == 0)
return Content("File Not Selected");
string fileExtension = Path.GetExtension(file.FileName);
if (fileExtension != ".xls" && fileExtension != ".xlsx")
return Content("File Not Selected");
var rootFolder = @"D:\Files";
var fileName = file.FileName;
var filePath = Path.Combine(rootFolder, fileName);
var fileLocation = new FileInfo(filePath);
using (var fileStream = new FileStream(filePath, FileMode.Create))
{
await file.CopyToAsync(fileStream);
}
if (file.Length <= 0)
return BadRequest(GlobalValidationMessage.FileNotFound);
using (ExcelPackage package = new ExcelPackage(fileLocation))
{
ExcelWorksheet workSheet = package.Workbook.Worksheets["Table1"];
//var workSheet = package.Workbook.Worksheets.First();
int totalRows = workSheet.Dimension.Rows;
var DataList = new List<Customers>();
for (int i = 2; i <= totalRows; i++)
{
DataList.Add(new Customers
{
CustomerName = workSheet.Cells[i, 1].Value.ToString(),
CustomerEmail = workSheet.Cells[i, 2].Value.ToString(),
CustomerCountry = workSheet.Cells[i, 3].Value.ToString()
});
}
_db.Customers.AddRange(customerList);
_db.SaveChanges();
}
return Ok();
}
关于asp.net-mvc - 在asp.net core 2中上传和读取excel文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49658913/