1.前言

  EPPlus是一个使用Open Office XML(xlsx)文件格式,能读写Excel 2007/2010 文件的开源组件,在导出Excel的时候不需要电脑上安装office,它的一个缺点就是不支持导出2003版的Excel(xls)。

2.数据导出

    在此之前,先引入nuget包:EPPlus.Core   

        [HttpGet]
public IActionResult Export()
{
string sWebRootFolder = hostingEnv.WebRootPath;
string sFileName = $@"qmhuangtext{DateTime.Now.ToString("yyyyMMddHHmmss")}.xlsx";
var path = Path.Combine(sWebRootFolder, sFileName);
FileInfo file = new FileInfo(path);
//构建数据
List<Person> list1 = new List<Person>()
{
new Person{Name = "",Sex="男"},
new Person{Name = "",Sex="男"},
new Person{Name = "",Sex="女"}
};
if (file.Exists)
{
file.Delete();
file = new FileInfo(path);
}
using (ExcelPackage package = new ExcelPackage(file))
{
    //创建sheet
ExcelWorksheet worksheet = package.Workbook.Worksheets.Add(“sheetname”);
worksheet.Cells.LoadFromCollection(list1 ,true);
package.Save(); //Save the workbook.
}
return File(new FileStream(Path.Combine(sWebRootFolder, sFileName), FileMode.Open), "application/octet-stream", $"excel导出测试{DateTime.Now.ToString("yyyyMMddHHmmss")}.xlsx");
}

在导出时有很多种数据Resource可以选择,比如上面的 LoadFromCollection ,还有 LoadFromDataTable  ,  LoadFromText 等方法

  worksheet.Cells.LoadFromCollection(list1 ,true);   //此方法第二个参数决定是否打印表头,第一行标题栏

2.数据导入

         /// <summary>
/// 读取sheet 内的数据进入实体
/// </summary>
/// <param name="worksheet"></param>
/// <returns></returns>
public List<Person> GetSheetValues(string filepath)
{
FileInfo file = new FileInfo(filepath);
if (file != null)
{
using (ExcelPackage package = new ExcelPackage(file))
{ ExcelWorksheet worksheet = package.Workbook.Worksheets[];
//获取表格的列数和行数
int rowCount = worksheet.Dimension.Rows;
int ColCount = worksheet.Dimension.Columns;
var persons = new List<Person>();
for (int row = ; row <= rowCount; row++)
{
Person person = new Person();
person.Name = worksheet.Cells[row, ].Value.ToString();
person.Sex = worksheet.Cells[row, ].Value.ToString();
persons.Add(person);
}
return persons;
}
}
return null;
}

注:你会发现上面在取数据时,遍历worksheet时坐标是从(1,1)开始的。epplus的顶点就是这个位置,如果你试图读取0位置,则会报错

.NET Core使用EPPlus简单操作Excel(简单实现导入导出)的更多相关文章

  1. C# 使用自带Microsoft.Office.Interop.Excel简单操作Excel文件

    项目添加应用 Microsoft.Office.Interop.Excel.dll 文件 引用命名空间: using Excel = Microsoft.Office.Interop.Excel; 简 ...

  2. 循序渐进开发WinForm项目(5)--Excel数据的导入导出操作

    随笔背景:在很多时候,很多入门不久的朋友都会问我:我是从其他语言转到C#开发的,有没有一些基础性的资料给我们学习学习呢,你的框架感觉一下太大了,希望有个循序渐进的教程或者视频来学习就好了. 其实也许我 ...

  3. VB中Excel 2010的导入导出操作

    VB中Excel 2010的导入导出操作 编写人:左丘文 2015-4-11 近来这已是第二篇在讨论VB的相关问题,今天在这里,我想与大家一起分享一下在VB中如何从Excel中导入数据和导出数据到Ex ...

  4. SQL SERVER 与ACCESS、EXCEL的数据导入导出转换

    * 说明:复制表(只复制结构,源表名:a 新表名:b)      select * into b from a where 1<>1 * 说明:拷贝表(拷贝数据,源表名:a 目标表名:b) ...

  5. 利用PHPExcel 实现excel数据的导入导出(源码实现)

    利用PHPExcel 实现excel数据的导入导出(源码实现) 在开发过程中,经常会遇到导入导出的需求,利用phpexcel类实现起来也是比较容易的,下面,我们一步一步实现 提前将phpexcel类下 ...

  6. Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能

    1.简介 Laravel Excel 在 Laravel 5 中集成 PHPOffice 套件中的 PHPExcel,从而方便我们以优雅的.富有表现力的代码实现Excel/CSV文件的导入和导出. 该 ...

  7. 在 Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能

    1.简介 Laravel Excel 在 Laravel 5 中集成 PHPOffice 套件中的 PHPExcel ,从而方便我们以优雅的.富有表现力的代码实现Excel/CSV文件的导入和 导出  ...

  8. 使用phpExcel实现Excel数据的导入导出(完全步骤)

    使用phpExcel实现Excel数据的导入导出(完全步骤)   很多文章都有提到关于使用phpExcel实现Excel数据的导入导出,大部分文章都差不多,或者就是转载的,都会出现一些问题,下面是本人 ...

  9. Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解

    1.简介 本文主要给大家介绍了关于Laravel 5用Laravel Excel实现Excel/CSV文件导入导出的相关内容,下面话不多说了,来一起看看详细的介绍吧. Laravel Excel 在 ...

随机推荐

  1. (020)[虚拟系统]Win7网络连接红叉(无解决)

    该虚拟机在重装主系统前是可以连接网络的,主系统重新安装以后,导入新安装的VM以后,网络图标显示红叉. 查看设备管理,显示没有安装以太网驱动. 重新安装 Vmware Tools,未果.VMware官网 ...

  2. 02.第二章_C++ Primer学习笔记_变量和基本类型

    2.1  基本内置类型 2.1.1  算术类型 算术类型包括两类:整型和浮点型 2.2  变量 2.3  复合类型 2.4  const限定符 2.5  处理类型 2.6  自定义数据结构

  3. Asp.net 字符(三)

    using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using ...

  4. AJPFX浅谈Java性能优化之finalize 函数

    ★finalize 函数的调用机制 俺经常啰嗦:“了解本质机制的重要性”.所以今天也得先谈谈 finalize 函数的调用机制.在聊之前,先声明一下:Java虚拟机规范,并没有硬性规定垃圾回收该不该搞 ...

  5. pageHelper分页插件失效问题

    在bootstrap中引用pageHelper进行页面分页<dependency><groupId>com.github.pagehelper</groupId>& ...

  6. 8.bootstrap下拉菜单、按钮组、按钮式下拉菜单

    下拉菜单 dropdown 对齐方式: .dropdown-menu-right     .dropdown-menu-left <div class="container" ...

  7. 进程间通信的两种实现方式(IPC)

    进程间通信的两种实现方式(IPC) IPC: iter processing communicate 进程间通信:IPC(iter process communicate)linux free-m 可 ...

  8. 如何正确理解关键字"with"与上下文管理器

    转自:https://foofish.net/with-and-context-manager.html 如果你有阅读源码的习惯,可能会看到一些优秀的代码经常出现带有 “with” 关键字的语句,它通 ...

  9. RecycleView的万能适配器

    转载自http://www.cnblogs.com/liushilin/p/5720926.html 由于RecyclerView的Adapter必须继承自RecyclerView.Adapter,并 ...

  10. IOStime处理

    对时间处理,在开发时,时常碰到.一般有获取具体的年月日和星期,两个不同时间的差,某一天的前一天或后一天等 .现在只介绍获取具体的年月日和星期,及某一天的前一天或后一天的方法: 对时间的处理一般都会用到 ...