.NET Core开源导入导出库 Magicodes.IE 2.3发布

在2.3这一版本的更新中,我们迎来了众多的使用者、贡献者,在这个里程碑中我们也添加并修复了一些功能。对于新特点的功能我将在下面进行详细的描述,当然也欢迎更多的人可以加入进来,再或者也很期待大家来提issues或者PR,您的一个issue或者PR将是我们前进的动力。

- 公式导出 #88
公式导出目前已经在Excel模板导出中支持,我们可以通过如上代码片段的格式进行将公式应用到我们的Excel导出模板中.
{{Formula::AVERAGE?params=G4:G6}}
{{Formula::SUM?params=G4:G6&G4}}
- 增加分栏、分sheet、追加rows导出 #74
在该版本中我们支持使用链式编程导出我们的Excel,从而起到追加分栏等作用。
在多个DTO导出中我们可以通过如下代码片段将我们的Excel分栏导出
exporter.Append(list1).SeparateByColumn().Append(list2).ExportAppendData(filePath);
导出形式如下所示:
| header 1 | header 2 | header1 | |
|---|---|---|---|
| row 1 col 1 | row 1 col 2 | row1 | |
| row 2 col 1 | row 2 col 2 | row2 |
我们还可以通过多个DTO进行多Sheet的导出,如下代码片段所示:
exporter.Append(list1).SeparateBySheet().Append(list2).ExportAppendData(filePath);

当然不仅仅是这样,我们还可以对行进行追加导出,同时我们可以选择导出额外的Header信息或者不导出
exporter.Append(list1).SeparateByRow().Append(list2).ExportAppendData(filePath);
| header 1 | header 2 | header1 | |
|---|---|---|---|
| row 1 col 1 | row 1 col 2 | row1 | |
| row 2 col 1 | row 2 col 2 | row2 | |
| row 2 col 1 | row 2 col 2 | row2 |
或者我们可以这样加入Header信息
exporter.Append(list1).SeparateByRow().AppendHeaders().Append(list2).ExportAppendData(filePath);
| header 1 | header 2 | header1 | |
|---|---|---|---|
| row 1 col 1 | row 1 col 2 | row1 | |
| row 2 col 1 | row 2 col 2 | row2 | |
| header 1 | header 2 | header1 | |
| row 2 col 1 | row 2 col 2 | row2 |
- 添加对ExpandoObject类型的支持#135
特别感谢 sgalcheung 添加该特性的导出,具体使用方式如下所示:
class Program
{
static async Task Main(string[] args)
{
IExporter exporter = new ExcelExporter();
// 生成测试数据
var personList = GenFu.GenFu.ListOf<Person>();
// 导出一个只包含"FirstName", "LastName"列的excel
string fields = "FirstName,LastName"; // 可自定义导出想要的字段
var expandoObjectList = new List<ExpandoObject>(personList.Count);
var propertyInfoList = new List<PropertyInfo>();
var fieldsAfterSplit = fields.Split(',');
foreach (var field in fieldsAfterSplit)
{
var propertyName = field.Trim();
var propertyInfo = typeof(Person).GetProperty(propertyName);
if (propertyInfo == null)
{
throw new Exception($"Property: {propertyName} 没有找到:{typeof(Person)}");
}
propertyInfoList.Add(propertyInfo);
}
foreach (var person in personList)
{
var shapedObj = new ExpandoObject();
foreach (var propertyInfo in propertyInfoList)
{
var propertyValue = propertyInfo.GetValue(person);
((IDictionary<string, object>)shapedObj).Add(propertyInfo.Name, propertyValue);
}
expandoObjectList.Add(shapedObj);
}
string filePath = Path.Combine(Directory.GetCurrentDirectory(), "dynamicExportExcel.xlsx");
var result = await exporter.ExportAsByteArray<ExpandoObject>(expandoObjectList);
File.WriteAllBytes(filePath, result);
}
}
class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Title { get; set; }
public int Age { get; set; }
public int NumberOfKids { get; set; }
}
感谢大家对Magicodes.IE的支持。关于更多发布信息大家可以参阅:https://github.com/dotnetcore/Magicodes.IE/blob/master/RELEASE.md
https://github.com/dotnetcore/Magicodes.IE
.NET Core开源导入导出库 Magicodes.IE 2.3发布的更多相关文章
- .NET 开源导入导出库 Magicodes.IE 2.5发布
今天我们发布了2.5版本,这当然也离不开大家对Magicodes.IE的支持,今天我也是跟往常一样列举了该版本一些重要的更新内容. 当然也要说一下,在这个版本中我们设计了全新的LOGO Excel导出 ...
- ASP.NET 开源导入导出库Magicodes.IE 完成Excel图片导入导出
Magicodes.IE Excel图片导入导出 为了更好的根据实际功能来迭代,从2.2的里程碑规划开始,我们将结合社区的建议和意见来进行迭代,您可以点此链接来提交您的意见和建议: https://g ...
- ASP.NET 开源导入导出库Magicodes.IE 完成Csv导入导出
Magicodes.IE Csv导入导出 说明 本章主要说明如何使用Magicodes.IE.Csv进行Csv导入导出. 主要步骤 1.安装包Magicodes.IE.Csv Install-Pack ...
- Magicodes.IE 2.3重磅发布——.NET Core开源导入导出库
在2.3这一版本的更新中,我们迎来了众多的使用者.贡献者,在这个里程碑中我们也添加并修复了一些功能.对于新特点的功能我将在下面进行详细的描述,当然也欢迎更多的人可以加入进来,再或者也很期待大家来提is ...
- 开源导入导出库Magicodes.IE 导出教程
要点 导出特性 如何导出Excel表头 如何导出数据.如何进行数据的切割.如何使用筛选器 导出特性 ExporterAttribute Name: 名称(当前Sheet 名称) HeaderFontS ...
- ASP.NET 开源导入导出库Magicodes.IE 导出Pdf教程
基础教程之导出Pdf收据 说明 本教程主要说明如何使用Magicodes.IE.Pdf完成Pdf收据导出 要点 导出PDF数据 自定义PDF模板 导出单据 如何批量导出单据 导出特性 PdfExpor ...
- ASP.NET 开源导入导出库Magicodes.IE 多Sheet导入教程
多Sheet导入教程 说明 本教程主要说明如何使用Magicodes.IE.Excel完成多个Sheet数据的Excel导入. 要点 多个相同格式的Sheet数据导入 多个不同格式的Sheet数据导入 ...
- 开源导入导出库Magicodes.IE 多sheet导入教程
原文作者:tanyongzheng 多Sheet导入教程 说明 本教程主要说明如何使用Magicodes.IE.Excel完成多个Sheet数据的Excel导入. 要点 多个相同格式的Sheet数据导 ...
- .Net core NPOI导入导出Excel
最近在想.net core NPOI 导入导出Excel,一开始感觉挺简单的,后来真的遇到很多坑.所以还是写一篇博客让其他人少走一些弯路,也方便忘记了再重温一遍.好了,多的不说,直接开始吧. 在.Ne ...
随机推荐
- goland2019.2破解方法
第一步:下载 jetbrains-agent.jar 链接:https://pan.baidu.com/s/1V2qZokAeAGcbsKDaoD9eSw 提取码:nrce 第二步:将下载的jetbr ...
- springmvc中get和post区别和应用
最近对post和get什么时候使用 和 应该怎么使用 他俩的区别 有了一些疑问 根据本人的了解 post是对数据进行了封装保护 get是安全性较差的 可以看到数据的信息 post是用来改 ...
- 【翻译】Promises/A+规范
目录 介绍 译文 1. 术语(Terminology) 2. 要求(Requirements) 2.1 Promise状态 2.2 then方法 2.3 Promise解析程序 3. 注释 3.1 p ...
- [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
Linux下安装MySQL执行scripts/mysql_install_db --user=mysql脚本时,报错如下: Filling help tables...2019-12-24 16:46 ...
- muduo源码解析9-timezone类
timezone class timezone:public copyable { }: 作用: 感觉有点看不懂,detail内部实现文件类不明白跟时区有什么关系.timezone类主要是完成各个时区 ...
- 微信小程序发送订阅消息(之前是模板消息)
之前的模板消息已经废弃,现在改为订阅消息,订阅消息发布前,需要用户确认后才能接收订阅消息. 小程序端 index.wxml <button bindtap="send"> ...
- PL/SQL语言基础
PL/SQL语言基础 进行PL/SQL编程前,要打开输出set serveroutput on 1.创建一个匿名PL/SQL块,将下列字符输出到屏幕:"My PL/SQL Block Wor ...
- java前端知识点整理
1.jsp内置对象?作用? request :客户端请求,包含来自 GET/POST,提供了几个用于获取 cookie, 和 session 的方法 response :网页传回用户端的回应 page ...
- 2020最新Servlet+form表单实现文件上传(图片)
servlet实现文件上传接受 这几天学了一点文件上传,有很多不会,在网查了许多博客,但是最新的没有,都比较久了 因为我是小白,版本更新了,以前的方法自己费了好久才弄懂,写个随笔方便以后查找 代码奉上 ...
- android studio配置so和assets目录
so配置: 1. 建立src/main/libs/armeabi目录,so文件放入armeabi目录 2.配置build.gradle android { defaultConfig{ XXXXXX ...