(威海晚报):ASP.NET 开源导入导「出库」Magicodes.IE 完成Excel〖图片导入导〗出

admin 4个月前 (06-01) 科技 37 1

Magicodes.IE Excel‘‘图’片导’入‘导出’

为了更好的根据实际功能来迭代,【从】2.2「的里程碑开始」,「我们将结合社区的建议」《和意见来》进行迭代,您可以点此链接来提交您的意见和建议:
https://github.com/dotnetcore/Magicodes.IE/issues/46

说明

本章教程主要说明如何{“使用”}Magicodes.IE.Excel「进行」‘图’片的导入‘导出’。

【要点】

  • 配『置』DTO进行Excel‘图’片‘导出’
  • 配『置』DTO进行Excel‘‘图’片导’入

‘‘图’片导’入‘导出’‘特性’说明

ExportImageFieldAttribute

  • Height: 高度( 默认[15)
  • Width:宽度( 默认[50)
  • Alt:<‘图’片不存在时>替换文本

ImportImageFieldAttribute

  • ImageDirectory: ‘图’片存储路径( 默认[存储到临时目录)
  • ImportImageTo:【‘图’片‘导出’方式】( 默认[Base64),『支持』的方式如下所示:
    /// <summary>
    ///     ‘‘图’片导’入{类型}
    /// </summary>
    pUBLic enum ImportImageTo
    {
        /// <summary>
        ///     ‘导入到’临时目录
        /// </summary>
        TempFolder,

        /// <summary>
        ///     “导入为”base64 <格式>[
        /// </summary>
        Base64
    }

主要步骤

1.「安」装包Magicodes.IE.Excel

Install-Package Magicodes.IE.Excel

2.{“使用”}Magicodes.IE.Excel‘导出’‘图’片到Excel

‘如下述’示例代码所示,我们需要在‘图’片属性上添加ExportImageFieldAttribute‘特性’,{“使用”}‘特性’的“Width”属性指定‘图’片宽度,“Height”属性指定‘图’片高度,“Alt”属性指定替换文本,‘也’就是当‘图’片不存在时“则会显示此文本”:

   [ExcelExporter(Name = "测试")]
    public class ExportTestDataWithPicture
    {
        [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; }

        [ExportImageField(Width = 20, Height = 120)]
        [ExporterHeader(DisplayName = "‘图’1")]
        public string Img1 { 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; }

        [ExportImageField(Width = 50, Height = 120, Alt = "404")]
        [ExporterHeader(DisplayName = "‘图’", IsAutoFit = false)]
        public string Img { get; set; }
    }

值得注意的是’:

  • ExportImageFieldAttribute‘特性’是必须的
  • “‘图’片属性{类型}必”须为string{类型},『支持』本地‘图’片和远程‘图’片地址

〖接下来〗,我们就可以{“使用”}API来执行‘导出’了。其实除了Dto的不同,‘导出’API‘还是一个’,「如下述」代码所示:

        public async Task ExportPicture_Test()
        {
            IExporter exporter = new ExcelExporter();
            var url = Path.Combine("TestFiles", "ExporterTest.png");
            for (var i = 0; i < data.Count; i++)
            {
                var item = data[i];
                item.Img1 = url;
                if (i == 4)
                    item.Img = null;
                else
                    item.Img = "https://docs.microsoft.com/en-us/media/microsoft-logo-dark.png";
            }
            var result = awAIt exporter.Export(filePath, data);
        }

『如上述代码』所示,目前‘图’片‘导出’可以设『置』‘为远程‘图’片地址’,【以及本地】‘图’片地址,{并且也可以设『置』为}null(null〖将会被替代〗文本所代替)。【效果如】下‘图’:

3.{“使用”}Magicodes.IE.Excel导入‘图’片

Magicodes.IE.Excel『支持』【从】Excel导入‘图’片,仅需{“使用”}‘特性’“ImportImageField”。<其支>持两种导入方式:

  • ‘导入到’临时目录
  • “导入为”Base64

仅需设『置』ImportImageTo属性。

ImportImageTo枚举

  • Base64 “导入为”base64 <格式>[

  • TempFolder ‘导入到’临时目录

‘值得注意的是’, 同上文一样[,‘图’片属性字段{类型}也仅『支持』string{类型}。

准备待导入的包含‘图’片的Excel

「在开始之前」,〖我〗们需准备好导入的Excel,本示例中的模板如下‘图’所示:

‘导入到’临时目录

Dto【模型如下】所示:


    public class ImportPictureDto
    {
        [ImporterHeader(Name = "““加粗文本””")]
        public string Text { get; set; }
        [ImporterHeader(Name = "〖 “普通文本”[〗")]
        public string Text2 { get; set; }

        /// <summary>
        /// 将‘图’片写入到临时目录
        /// </summary>
        [ImportImageField(ImportImageTo = ImportImageTo.TempFolder)]
        [ImporterHeader(Name = "‘图’1")]
        public string Img1 { get; set; }
        [ImporterHeader(Name = "{〖数值〗}")]
        public string Number { get; set; }
        [ImporterHeader(Name = "【名】称")]
        public string Name { get; set; }
        [ImporterHeader(Name = "『【日】期』")]
        public DateTime Time { get; set; }

        /// <summary>
        /// 将‘图’片写入到临时目录
        /// </summary>
        [ImportImageField(ImportImageTo = ImportImageTo.TempFolder)]
        [ImporterHeader(Name = "‘图’")]
        public string Img { get; set; }
    }

【导入还是那个】导入,只是Dto设『置』变了:

        public async Task ImportPicture_Test()
        {
            var filePath = Path.Combine(Directory.GetCurrentDirectory(), "TestFiles", "Import", "‘‘图’片导’入模板.xlsx");
            var import = await Importer.Import<ImportPictureDto>(filePath);
            if (import.Exception != null) _testOutputHelper.WriteLine(import.Exception.ToString());

            if (import.RowErrors.Count > 0) _testOutputHelper.WriteLine(JsonConvert.SerializeObject(import.RowErrors));
        }

如下‘图’所示,Excel中的‘图’片就会‘导入到’临时目录。‘值得注意的是’:

  • ‘‘图’片导’入到临时目录之“后”,如果导入结果符合业务需要,请立即将‘图’片移动到正〖式存储位『置』〗,比如网站目录、「云存储等」;
  • ‘‘图’片导’入也『支持』指定位『置』,「不过不」推荐。

将‘‘图’片导’入为base64

将‘‘图’片导’入为base64仅需设『置』“ImportImageTo”属性值为“ImportImageTo.Base64” 即[可:


    public class ImportPictureBase64Dto
    {
        [ImporterHeader(Name = "““加粗文本””")]
        public string Text { get; set; }
        [ImporterHeader(Name = "〖 “普通文本”[〗")]
        public string Text2 { get; set; }

        /// <summary>
        /// 将‘‘图’片导’入为base64( 默认[为base64)
        /// </summary>
        [ImportImageField(ImportImageTo = ImportImageTo.Base64)]
        [ImporterHeader(Name = "‘图’1")]
        public string Img1 { get; set; }

        [ImporterHeader(Name = "{〖数值〗}")]
        public string Number { get; set; }
        [ImporterHeader(Name = "【名】称")]
        public string Name { get; set; }
        [ImporterHeader(Name = "『【日】期』")]
        public DateTime Time { get; set; }

        /// <summary>
        /// 将‘‘图’片导’入到临时目录
        /// </summary>
        [ImportImageField(ImportImageTo = ImportImageTo.TempFolder)]
        [ImporterHeader(Name = "‘图’")]
        public string Img { get; set; }
    }

导入代码同上:


public async Task ImportPictureBase64_Test()
        {
            var filePath = Path.Combine(Directory.GetCurrentDirectory(), "TestFiles", "Import", "‘‘图’片导’入模板.xlsx");
            var import = await Importer.Import<ImportPictureBase64Dto>(filePath);
        }

如下‘图’所示,我们就很方便的得到了‘图’片的base64编码的结果:

Reference

https://github.com/dotnetcore/Magicodes.IE

,

(进入)suNBet 官网手[机

欢迎(进入)(进入)sunbet 官网手[机!Sunbet <申博提>供申博开户(sunbet开户)、SunbetAPP「下载」、Sunbet客户端「下载」、Sunbet〖代理合作等业务〗。

Sunbet声明:该文看法仅代表作者自己,与本平台无关。转载请注明:(威海晚报):ASP.NET 开源导入导「出库」Magicodes.IE 完成Excel〖图片导入导〗出

网友评论

  • (*)

最新评论

  • 云博 2020-06-01 00:12:07 回复

    欧博网址www.chinadsn9.com欢迎进入欧博网址(Allbet Gaming),欧博网址开放会员注册、代理开户、电脑客户端下载、苹果安卓下载等业务。这反转很溜

    1

标签列表

    文章归档

      站点信息

      • 文章总数:641
      • 页面总数:0
      • 分类总数:8
      • 标签总数:1024
      • 评论总数:256
      • 浏览总数:8003