2020-09-21

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

file

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

file

  • 公式导出 #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 1header 2header1
row 1 col 1row 1 col 2row1
row 2 col 1row 2 col 2row2

我们还可以通过多个DTO进行多Sheet的导出,如下代码片段所示:

exporter.Append(list1).SeparateBySheet().Append(list2).ExportAppendData(filePath);

file

当然不仅仅是这样,我们还可以对行进行追加导出,同时我们可以选择导出额外的Header信息或者不导出

exporter.Append(list1).SeparateByRow().Append(list2).ExportAppendData(filePath);
header 1header 2header1
row 1 col 1row 1 col 2row1
row 2 col 1row 2 col 2row2
row 2 col 1row 2 col 2row2

或者我们可以这样加入Header信息

exporter.Append(list1).SeparateByRow().AppendHeaders().Append(list2).ExportAppendData(filePath);
header 1header 2header1
row 1 col 1row 1 col 2row1
row 2 col 1row 2 col 2row2
header 1header 2header1
row 2 col 1row 2 col 2row2
  • 添加对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


原文转载:http://www.shaoqun.com/a/477497.html

捷汇:https://www.ikjzd.com/w/419
五洲会海购:https://www.ikjzd.com/w/1068
欺诈近700万!4名印度人利用退换货"玩转"亚马逊!:https://www.ikjzd.com/home/13972
注意!越南出台原产地管理新政,想避税从越南出口可不行了!:https://www.ikjzd.com/home/104294
Foodpanda:https://www.ikjzd.com/w/2131

在2.3这一版本的更新中,我们迎来了众多的使用者、贡献者,在这个里程碑中我们也添加并修复了一些功能。对于新特点的功能我将在下面进行详细的描述,当然也欢迎更多的人可以加入进来,再或者也很期待大家来提issues或者PR,您的一个issue或者PR将是我们前进的动力。公式导出#88公式导出目前已经在Excel模板导出中支持,我们可以通过如上代码片段的格式进行将公式应用到我们的Excel导出模板中.{{
美菜:https://www.ikjzd.com/w/1874
tradekey:https://www.ikjzd.com/w/1630
亚马逊卖家避坑指南:17种ASIN违规,你中了哪一条?:https://www.ikjzd.com/home/96464
2018全球开店卖家峰会-参展商联系方式:https://www.ikjzd.com/tl/13247
美国站出现掉评删评!卖家想要review?不看怎么行?:https://www.ikjzd.com/home/118999

No comments:

Post a Comment