天天看点

如何在 C# MVC 应用程序中从 Excel“XLSX”文件导入数据

作者:opendotnet
如何在 C# MVC 应用程序中从 Excel“XLSX”文件导入数据

从 C# MVC 应用程序中的 Excel (XLSX) 文件导入数据涉及使用类似 or 的库来读取和分析文件。在本指南中,我们将使用该库,因为它简单且功能强大。

先决条件

在开始之前,请确保满足以下条件:

  • Visual Studio 或任何 C# IDE
  • 基本了解 C#、ASP.NET MVC 和 HTML
  • 要读取的 Excel 文件

设置项目

  1. 创建新的 ASP.NET MVC 项目:
  2. 打开 Visual Studio 并创建新的 ASP.NET MVC 项目:
File > New > Project > ASP.NET Web Application > MVC
           

3. 安装 EPPlus 库:

4. 通过 NuGet 包管理器安装库。在包管理器控制台中运行以下命令:EPPlus

Install-Package EPPlus
           

创建模型

首先,创建一个模型类来表示要从 Excel 文件导入的数据。例如,让我们创建一个模型:Product

public class Product 
{ 
public int Id { get; set; } 
public string Name { get; set; } 
public decimal Price { get; set; } 
}
           

创建控制器

接下来,创建一个控制器来处理文件上传和数据处理。在此示例中,让我们创建一个:ProductController

using System.Collections.Generic;
using System.IO;
using System.Web;
using System.Web.Mvc;
using EPPlusSample.Models;
using OfficeOpenXml;
namespace EPPlusSample.Controllers
{
public class ProductController : Controller
 {
// GET: Product
public ActionResult Index()
 {
return View();
 }

 [HttpPost]
public ActionResult Import(HttpPostedFileBase file)
 {
if (file !=  && file.ContentLength > 0)
 {
var products = new List<Product>();
using (var package = new ExcelPackage(file.InputStream))
 {
var worksheet = package.Workbook.Worksheets[0];
var rowCount = worksheet.Dimension.Rows;
for (int row = 2; row <= rowCount; row++)
 {
var product = new Product
 {
 Id = int.Parse(worksheet.Cells[row, 1].Text),
 Name = worksheet.Cells[row, 2].Text,
 Price = decimal.Parse(worksheet.Cells[row, 3].Text)
 };
 products.Add(product);
 }
 }
// Save products to the database or process them as needed
// For simplicity, we'll just pass the list to the view
return View("Index", products);
 }
return View("Index");
 }
 }
}
           

在此代码中:

  • 我们定义一个操作来显示上传表单。Index
  • 该操作处理文件上传并使用 .ImportEPPlus
  • 我们解析 Excel 数据并创建一个对象列表。Product
  • 最后,我们将产品列表传递给视图以进行显示或进一步处理。

创建视图

为上传 Excel 文件并显示导入数据的操作创建视图。在文件夹中创建一个包含以下内容的文件:IndexIndex.cshtmlViews/Product

@model IEnumerable<EPPlusSample.Models.Product>
@{
 ViewBag.Title = "Import Products";
}
<h2>Import Products</h2>
<form action="/Product/Import" method="post" enctype="multipart/form-data">
 <input type="file" name="file" />
 <button type="submit">Upload</button>
</form>
@if (Model !=  && Model.Any())
{
 <h3>Imported Products</h3>
 <table class="table">
 <thead>
 <tr>
 <th>ID</th>
 <th>Name</th>
 <th>Price</th>
 </tr>
 </thead>
 <tbody>
 @foreach (var product in Model)
 {
 <tr>
 <td>@product.Id</td>
 <td>@product.Name</td>
 <td>@product.Price</td>
 </tr>
 }
 </tbody>
 </table>
}
           

在此视图中:

  • 我们创建一个表单来上传 Excel 文件。
  • 如果模型包含数据(即导入产品列表),我们会将其显示在表格中。

运行应用程序

  1. 通过在 Visual Studio 中按或运行项目来启动应用程序。F5
  2. 导航到“产品导入”页面。
  3. 上传包含商品数据的 Excel 文件。
  4. 查看表格中显示的进口产品。

在本介绍了如何使用库从 C# MVC 应用程序中的 Excel (XLSX) 文件导入数据。通过创建简单的文件上传表单并分析 Excel 文件,您可以轻松地在 ASP.NET MVC 应用程序中导入和处理数据。

如果你喜欢我的文章,请给我一个赞!谢谢

继续阅读