赞
踩
在项目中添加了EPPlus库的引用,你可以通过NuGet包管理器或手动将EPPlus库添加到项目中。同时,需要注意的是EPPlus库支持的是xlsx格式的Excel文件。
使用EPPlus读取本地Excel文件的示例代码如下:
using OfficeOpenXml;
public void ReadExcel()
{
// 读取文件路径
string filePath = "path_to_your_excel_file.xlsx";
// 创建一个新的ExcelPackage对象
using (ExcelPackage package = new ExcelPackage(new FileInfo(filePath)))
{
// 获取第一个工作表
ExcelWorksheet worksheet = package.Workbook.Worksheets[0];
// 获取Excel中的行数和列数
int rowCount = worksheet.Dimension.Rows;
int columnCount = worksheet.Dimension.Columns;
// 遍历每一行
for (int row = 1; row <= rowCount; row++)
{
// 遍历每一列
for (int col = 1; col <= columnCount; col++)
{
// 通过索引获取单元格值
var cellValue = worksheet.Cells[row, col].Value;
// 在这里进行进一步的处理,比如将数据存储到集合中
// ...
}
}
}
}
请注意替换代码中的"path_to_your_excel_file.xlsx"为你的本地Excel文件的路径。这个示例代码打开一个Excel文件,读取第一个工作表的所有单元格,并对每个单元格的值进行处理。你可以根据自己的需求在遍历过程中进行相应的操作,比如将数据存储到集合中。
下面是一个示例代码,演示如何在.NET Core中使用EPPlus生成Excel并通过接口返回给前端:
using OfficeOpenXml;
using System.IO;
using Microsoft.AspNetCore.Mvc;
[ApiController]
[Route("api/[controller]")]
public class ExcelController : ControllerBase
{
[HttpGet]
public IActionResult GenerateExcel()
{
// 创建一个新的ExcelPackage对象
using (ExcelPackage package = new ExcelPackage())
{
// 添加工作表
ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Sheet1");
// 设置数据到工作表中
worksheet.Cells["A1"].Value = "Name";
worksheet.Cells["B1"].Value = "Age";
worksheet.Cells["A2"].Value = "John";
worksheet.Cells["B2"].Value = 25;
worksheet.Cells["A3"].Value = "Jane";
worksheet.Cells["B3"].Value = 30;
// 保存Excel文件流
MemoryStream memoryStream = new MemoryStream();
package.SaveAs(memoryStream);
// 设置文件名
string fileName = "sample.xlsx";
// 返回Excel文件
return File(memoryStream.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", fileName);
}
}
}
在这个示例中,我们创建了一个ExcelController
控制器,并在其中定义了一个GenerateExcel
动作。这个动作使用EPPlus生成Excel文件,将文件保存到MemoryStream
中,并使用File
方法将MemoryStream
作为响应返回给前端。
需要注意的是,你需要确保在控制器中引入了Microsoft.AspNetCore.Mvc
命名空间。
通过调用api/Excel
接口,你可以获取到生成的Excel文件,并在前端进行下载。
生成Excel文件之前执行了单元格合并操作:
using OfficeOpenXml;
using System.IO;
using Microsoft.AspNetCore.Mvc;
[ApiController]
[Route("api/[controller]")]
public class ExcelController : ControllerBase
{
[HttpGet]
public IActionResult GenerateExcel()
{
// 创建一个新的ExcelPackage对象
using (ExcelPackage package = new ExcelPackage())
{
// 添加工作表
ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Sheet1");
// 设置数据到工作表中
worksheet.Cells["A1"].Value = "Name";
worksheet.Cells["B1"].Value = "Age";
worksheet.Cells["A2"].Value = "John";
worksheet.Cells["B2"].Value = 25;
worksheet.Cells["A3"].Value = "Jane";
worksheet.Cells["B3"].Value = 30;
// 合并单元格
worksheet.Cells["A1:B1"].Merge = true;
// 保存Excel文件流
MemoryStream memoryStream = new MemoryStream();
package.SaveAs(memoryStream);
// 设置文件名
string fileName = "sample.xlsx";
// 返回Excel文件
return File(memoryStream.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", fileName);
}
}
}
在上述示例中,我们在设置数据之后,通过将Merge
属性设置为true
,以实现单元格"A1"和"B1"的合并。这将把"A1"和"B1"单元格合并为一个单元格。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。