模板多个列表级联_Excel模板导出之导出教材订购表

说明

本教程主要说明如果使用Magicodes.IE.Excel完成教材订购表的Excel模板导出。

要点

  • 本教程使用Magicodes.IE.Excel来完成Excel模板导出

  • 需要通过创建Dto来完成导出

  • 需要按要求准备Excel模板

主要步骤

1.安装包Magicodes.IE.Excel

在本篇教程中,我们仅演示使用Excel来完成学生数据的导入。我们需要在已准备好的工程中安装以下包,参考命令如下所示:

Install-Package Magicodes.IE.Excel

2.准备模板

Magicodes.IE.Excel模板导出支持单元格渲染和表格渲染:

  • 单元格渲染

    语法:

{{Company}} (教学单位名称)2020年春季教材订购明细

注意:

    • 双大括号是必须的

    • 暂不支持表达式等

    • 支持子对象属性

    • 大小写敏感

  • 表格渲染

10a6310879696100097c1cda48f3d6e1.png

表格渲染的格式如上所述:

  • 渲染语法以“Table>>BookInfos|”为开始,其中“BookInfos”为列表属性

  • “RowNo”、“No”等均为列表字段

  • 必须以“|>>Table”结尾

  • 暂不支持一行多个Table(即将支持,具体请查看日志)

根据以上语法,我们可以编写模板如下所示:

1060b7dd4ee4d774c6559d0bb94145cc.png

3.创建导出Dto

主要代码如下所示:

  • 教材订购信息Dto

///  /// 教材订购信息 ///  public class TextbookOrderInfo { ///  /// 公司名称 ///  public string Company { get; } ///  /// 地址 ///  public string Address { get; } ///  /// 联系人 ///  public string Contact { get; } ///  /// 电话 ///  public string Tel { get; } ///  /// 制表人 ///  public string Watchmaker { get; } ///  /// 时间 ///  public string Time { get; } ///  /// 教材信息列表 ///  public List BookInfos { get; } public TextbookOrderInfo(string company, string address, string contact, string tel, string watchmaker, string time, List bookInfo) { Company = company; Address = address; Contact = contact; Tel = tel; Watchmaker = watchmaker; Time = time; BookInfos = bookInfo; } }

如上述代码所示,定义的结构基本上和模板一致。其中属性BookInfos对应列表,具体定义如下所示。

  • 教材信息Dto:

 ///  /// 教材信息 ///  public class BookInfo { ///  /// 行号 ///  public int RowNo { get; } ///  /// 书号 ///  public string No { get; } ///  /// 书名 ///  public string Name { get; } ///  /// 主编 ///  public string EditorInChief { get; } ///  /// 出版社 ///  public string PublishingHouse { get; } ///  /// 定价 ///  public string Price { get; } ///  /// 采购数量 ///  public int PurchaseQuantity { get; } ///  /// 备注 ///  public string Remark { get; } public BookInfo(int rowNo, string no, string name, string editorInChief, string publishingHouse, string price, int purchaseQuantity, string remark) { RowNo = rowNo; No = no; Name = name; EditorInChief = editorInChief; PublishingHouse = publishingHouse; Price = price; PurchaseQuantity = purchaseQuantity; Remark = remark; } }

4.导出

接下来直接调用Magicodes.IE.Excel封装的模板导出方法,该方法实现自接口

IExportFileByTemplate:

///  /// 根据模板导出文件 ///  public interface IExportFileByTemplate { ///  /// 根据模板导出 ///  ///  ///  ///  /// HTML模板或模板路径 ///  Task ExportByTemplate(string fileName, T data, string template) where T : class; }

通过以上方法中的ExportByTemplate,我们就可以完成Excel模板导出。具体使用可以参考以下单元测试:

[Fact(DisplayName = "Excel模板导出教材订购明细样表")]public async Task ExportByTemplate_Test{ //模板路径 var tplPath = Path.Combine(Directory.GetCurrentDirectory, "TestFiles
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值