阅读asp.net core 1.0上的excel文件

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)

Tom*_*ica 5

在 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)

  • .NET Core 不支持 EPPlus,但有一个名为 EPPlus.core 的 EPPlus 库的非官方端口,可用于读取和写入 excel。请参阅此[链接](http://www.talkingdotnet.com/import-export-xlsx-asp-net-core/) (12认同)
  • 我想说这确实很重要,尤其是当您尝试读取 xls 或受密码保护的 Excel 文件时。大多数软件包使用未在 Core 中实现的已弃用的数据结构,例如数据表或 ole 连接提供程序。此外,受密码保护的文件需要 Office com 库来进行读/写操作。 (3认同)