Joe*_*oel 14 c# import excel asp.net-core-1.0
您好我试图上传并读取我的asp.net项目中的excel文件,但我找到的所有文档都是针对ASP MVC 5.我的目标是读取excel表并将值传递给对象列表.
这是我的控制器,它适用于将文件上传到我的wwwroot/uploads
public class HomeController : Controller
{
private IHostingEnvironment _environment;
public HomeController(IHostingEnvironment environment)
{
_environment = environment;
}
public IActionResult index()
{
return View();
}
[HttpPost]
public async Task<IActionResult> Index(ICollection<IFormFile> files)
{
var uploads = Path.Combine(_environment.WebRootPath, "uploads");
foreach (var file in files)
{
if (file.Length > 0)
{
using (var fileStream = new FileStream(Path.Combine(uploads, file.FileName), FileMode.Create))
{
await file.CopyToAsync(fileStream);
}
}
}
return View();
}
Run Code Online (Sandbox Code Playgroud)
在 Visual Studio 中打开包管理器控制台并键入:
PM> Install-Package EPPlus.Core
Run Code Online (Sandbox Code Playgroud)
编写文件就像这样简单:
public void WriteExcel(string fileName)
{
FileInfo file = new FileInfo(fileName);
/// overwrite old file
if (file.Exists)
{
file.Delete();
file = new FileInfo(fileName);
}
using (ExcelPackage package = new ExcelPackage(file))
{
// add a new worksheet to the empty workbook
ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Employee");
worksheet.Cells["A1"].Value = "HELLO WORLD!!!";
package.Save();
}
}
Run Code Online (Sandbox Code Playgroud)
更多示例:http : //www.talkingdotnet.com/import-export-xlsx-asp-net-core/
Kas*_*ols -2
在大多数情况下,在读取 Excel 文件时,使用 ASP.NET 4 还是 ASP.NET Core 并不重要。您只需要找到一个允许执行此操作的库即可。建议使用 NuGet 将此类库添加到您的项目中。
请参阅此处如何安装 NuGet 包的说明:https ://docs.nuget.org/ndocs/guides/install-nuget
我推荐使用的一个库是 EPPlus ( https://www.nuget.org/packages/EPPlus )。
当您完成文件上传并将Excel文件存储在某处时,您只需使用EPPlus打开它即可读取。简单的例子如下:
var package = new ExcelPackage(new FileInfo("sample.xlsx"));
ExcelWorksheet workSheet = package.Workbook.Worksheets[0];
for (int i = workSheet.Dimension.Start.Column; i <= workSheet.Dimension.End.Column; i++)
{
for (int j = workSheet.Dimension.Start.Row; j <= workSheet.Dimension.End.Row; j++)
{
object cellValue = workSheet.Cells[i, j].Value;
}
}
Run Code Online (Sandbox Code Playgroud)