【LSP】Magicodes.IE之花式导出

[复制链接]
查看2124 | 回复5 | 2020-12-5 22:27:49 | 显示全部楼层 |阅读模式

总体设计
Magicodes.IE是一个导入导出通用库,支持Dto导入导出以及动态导出,支持Excel、Word、Pdf、Csv和Html。在本篇教程,笔者将讲述如何使用Magicodes.IE进行花式导出。

在本篇教程,笔者主要讲述如何使用IE进行花式导出并满足客户爸爸的需求。
同一个数据源拆分Sheet导出
通常情况下,客户爸爸的需求是比较正常的,比如在数据量大时,希望将数据进行拆分导出。

这时候我们就需要使用IE按部就班开发了,先创建Dto:

[ExcelExporter(Name = "测试2", TableStyle = "None", AutoFitAllColumn = true, MaxRowNumberOnASheet = 100)]
public class ExportTestDataWithSplitSheet
{
    [ExporterHeader(DisplayName = "加粗文本", IsBold = true)]
    public string Text { get; set; }

    [ExporterHeader(DisplayName = "普通文本")] public string Text2 { get; set; }

    [ExporterHeader(DisplayName = "忽略", IsIgnore = true)]
    public string Text3 { get; set; }

    [ExporterHeader(DisplayName = "数值", Format = "#,##0")]
    public decimal Number { get; set; }

    [ExporterHeader(DisplayName = "名称", IsAutoFit = true)]
    public string Name { get; set; }

    /// <summary>
    /// 时间测试
    /// </summary>
    [ExporterHeader(DisplayName = "日期1", Format = "yyyy-MM-dd")]
    public DateTime Time1 { get; set; }

    /// <summary>
    /// 时间测试
    /// </summary>
    [ExporterHeader(DisplayName = "日期2", Format = "yyyy-MM-dd HH:mm:ss")]
    public DateTime? Time2 { get; set; }

    public DateTime Time3 { get; set; }

    public DateTime Time4 { get; set; }
}

如上述Dto定义所示,我们通过MaxRowNumberOnASheet属性指定了每个Sheet最大的行数,接下来仅需使用普通导出即可自动拆分Sheet导出:

        var result = await exporter.Export(filePath,
            GenFu.GenFu.ListOf<ExportTestDataWithSplitSheet>(300));

是不是非常简单?作为一个正直和诚实的人,这时候我们可以评估为2天的工作量。

多个数据源多Sheet导出
过了一段时间,客户爸爸厌倦了各种表格,他有一个残暴的想法——乙方渣渣,能不能把这个表格做成一个表格导出!为了不被甲方爸爸按在地上摩擦,我们先跪下来。在各种讨价还价之后,我们Get到了5天的工作量。

对于导出多个数据,IE也做了充分的考虑:

Dto1:
最后
通过本篇教程,我想大家明白了一个道理:人生如戏,全靠演技。当你有IE作为后盾时,在甲方爸爸面前,你就可以尽情的跪拜了!

不过我们还是来做一个总结,在本教程中,只要你掌握了以下API,你就可以赢取白富美,走上人生巅峰了:

API        说明
Append        追加数据源,支持传递Sheet名称
AppendHeaders        追加表头
SeparateByColumn        通过追加Column分割导出
SeparateBySheet        通过Sheet分割导出
SeparateByRow        通过追加行来分割导出
ExportAppendData        导出追加数据
aaaa
村长黑科技是专业提供项目资源的服务的村长黑科技平台,如合购网赚项目、引流推广软件、软件程序开发等项目就选村长黑科技平台,参与或发布项目定制各种软件就来村长黑科技平台
68079330 | 2020-12-6 09:59:55 | 显示全部楼层
aaaa
村长黑科技是专业提供项目资源的服务的村长黑科技平台,如合购网赚项目、引流推广软件、软件程序开发等项目就选村长黑科技平台,参与或发布项目定制各种软件就来村长黑科技平台
回复

使用道具 举报

大司命 | 2020-12-7 18:13:04 | 显示全部楼层
……
aaaa
村长黑科技是专业提供项目资源的服务的村长黑科技平台,如合购网赚项目、引流推广软件、软件程序开发等项目就选村长黑科技平台,参与或发布项目定制各种软件就来村长黑科技平台
回复

使用道具 举报

yichong | 2020-12-7 22:04:24 | 显示全部楼层
占坑编辑ing
aaaa
村长黑科技是专业提供项目资源的服务的村长黑科技平台,如合购网赚项目、引流推广软件、软件程序开发等项目就选村长黑科技平台,参与或发布项目定制各种软件就来村长黑科技平台
回复

使用道具 举报

liqiang24 | 2020-12-8 06:10:52 | 显示全部楼层
在撸一遍。。。
aaaa
村长黑科技是专业提供项目资源的服务的村长黑科技平台,如合购网赚项目、引流推广软件、软件程序开发等项目就选村长黑科技平台,参与或发布项目定制各种软件就来村长黑科技平台
回复

使用道具 举报

无量科技 | 2020-12-12 12:33:04 | 显示全部楼层
小白一个 顶一下
aaaa
村长黑科技是专业提供项目资源的服务的村长黑科技平台,如合购网赚项目、引流推广软件、软件程序开发等项目就选村长黑科技平台,参与或发布项目定制各种软件就来村长黑科技平台
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则