hive 导出json格式 文件_Magicodes.IE在.NET Core中通过请求头导出多种格式文件

b3ff66779f1be9f2092b4d384a5a9dec.png

前言

在2.2里程碑中我们增加了一些新的功能,正如标题所写通过请求头进行导出我们不同格式的文件.下面我们来看一下如何使用.通过这种方式无论是对我们的数据多用途,还是说对我们的数据校验都做到了轻松易配。

同时我们也将在本周发布2.3版本,另外3.0版本我们将进行一次大的性能提升。3.0版本我们将对Razor引擎以及导出引擎进行更换,包括对所有代码的重构,这是值得期待的。

上周我们发布了2.2.5版本更新如下:

  • 【Nuget】版本更新到2.2.5
  • 【Excel导出】增加分栏、分sheet、追加rows导出 #74- exporter.Append(list1).SeparateByColumn().Append(list2).ExportAppendData(filePath); - exporter.Append(list1).SeparateBySheet().Append(list2).ExportAppendData(filePath); - exporter.Append(list1).SeparateByRow().AppendHeaders().Append(list2).ExportAppendData(filePath);
  • [Excel导出】修复‘IsAllowRepeat=true’ #107
  • [Pdf导出】增加PDF扩展方法,支持通过以参数形式传递特性参数 #104- Task ExportListBytesByTemplate(ICollection<T> data, PdfExporterAttribute pdfExporterAttribute,string temple); - Task ExportBytesByTemplate<T>(T data, PdfExporterAttribute pdfExporterAttribute,string template);

主要步骤

1.安装包

Install-Package Magicodes.IE.AspNetCore

2.开始配置

在Startup.cs的Configure()方法中,在UseRouting()中间件之后,注册如下中间件

public void Configure(IApplicationBuilder app){    app.UseRouting();    app.UseMagiCodesIE();    app.UseEndpoints(endpoints =>    {        endpoints.MapControllers();    });}

上面这种以中间件形式可以为我们提供导出服务,那么我们再看一下另一种方式如下所示:

  public void ConfigureServices(IServiceCollection services)            {                services.AddControllers(options=>options.Filters.Add(typeof(MagicodesFilter)));            }

上面两种方式都可以为我们提供导出服务,我们只需要对我们的控制器进行配置我们的特性,在这边呢 特性主要做的是一个标识作用,标识他的一些相关的内容数据,同时标识他可以当成文件导出。

[HttpGet("excel")][Magicodes(Type = typeof(ExportTestDataWithAttrs))]public List Excel(){    return GenFu.GenFu.ListOf(100);}

上面代码片段中我们标识这个类允许被导出。同时我们需要通过Type指定我们被导出类的类型。

这样填写完后我们可以通过对该地址的调用,但是注意我们必须要添加请求头以标识被导出的文件类型。如果不添加请求头,那么此处将返回的还是json格式的数据。请求头名称为Magicodes-Type

       ///         ///     XLSX        ///         internal const string XLSXHttpContentMediaType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";        ///         ///     PDF        ///         internal const string PDFHttpContentMediaType = "application/pdf";        ///         ///     DOCX        ///         internal const string DOCXHttpContentMediaType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";        ///         ///     HTML        ///         internal const string HTMLHttpContentMediaType = "text/html";

如果说是模板导出word或者pdf甚至说html文件那么我们也是同样的操作如下所示:

[HttpGet("Word")]        [Magicodes(Type = typeof(ReceiptInfo), TemplatePath = ".//ExportTemplates//receipt.cshtml")]        public ReceiptInfo Word()        {            return new ReceiptInfo            {                Amount = 22939.43M,                Grade = "2019秋",                IdNo = "43062619890622xxxx",                Name = "张三",                Payee = "湖南心莱信息科技有限公司",                PaymentMethod = "微信支付",                Profession = "运动训练",                Remark = "学费",                TradeStatus = "已完成",                TradeTime = DateTime.Now,                UppercaseAmount = "贰万贰仟玖佰叁拾玖圆肆角叁分",                Code = "19071800001"            };        }

我们还是需要对其指定Type,然后通过TemplatePath进行指定模板地址即可

同样的我们还可以通过请求头进行标识本次请求是否是文件格式导出。

        [HttpGet("pdf")]        [Magicodes(Type = typeof(BatchPortraitReceiptInfoInput), TemplatePath = ".//ExportTemplates//batchReceipt.cshtml")]        public BatchPortraitReceiptInfoInput Pdf()        {            var input = new BatchPortraitReceiptInfoInput  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值