怎么更改网站备案信息吗,北京公司摇号中签率,北京中信建设有限责任公司,导购类网站备案说明本章教程主要说明如何使用Magicodes.IE.Excel进行图片的导入导出。要点配置DTO进行Excel图片导出配置DTO进行Excel图片导入图片导入导出特性说明ExportImageFieldAttributeHeight#xff1a;高度(默认15)Width#xff1a;宽度(默认50)Alt#xff1a;图片不存在时替换文本… 说明本章教程主要说明如何使用Magicodes.IE.Excel进行图片的导入导出。要点配置DTO进行Excel图片导出配置DTO进行Excel图片导入图片导入导出特性说明ExportImageFieldAttributeHeight高度(默认15)Width宽度(默认50)Alt图片不存在时替换文本ImportImageFieldAttributeImageDirectory 图片存储路径默认存储到临时目录ImportImageTo图片导出方式默认Base64支持的方式如下所示/// summary/// 图片导入类型/// /summarypublic enum ImportImageTo{/// summary/// 导入到临时目录/// /summaryTempFolder,/// summary/// 导入为base64格式/// /summaryBase64}
主要步骤1.安装包Magicodes.IE.ExcelInstall-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;elseitem.Img https://docs.microsoft.com/en-us/media/microsoft-logo-dark.png;}var result await exporter.Export(filePath, data);}
如上述代码所示目前图片导出可以设置为远程图片地址以及本地图片地址并且也可以设置为nullnull将会被替代文本所代替。效果如下图3.使用Magicodes.IE.Excel导入图片Magicodes.IE.Excel支持从Excel导入图片仅需使用特性“ImportImageField”。其支持两种导入方式导入到临时目录导入为Base64仅需设置ImportImageTo属性。ImportImageTo枚举Base64 导入为base64格式TempFolder 导入到临时目录值得注意的是同上文一样图片属性字段类型也仅支持string类型。准备待导入的包含图片的Excel在开始之前我们需准备好导入的Excel本示例中的模板如下图所示您可以在单元测试的“TestFiles”目录中找到此文件。接下来我们就使用此文件来演示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.ImportImportPictureDto(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.ImportImportPictureBase64Dto(filePath);}
如下图所示我们就很方便的得到了图片的base64编码的结果转载是一种动力 分享是一种美德作者hueifeng如果喜欢作者的文章请关注【麦扣聊技术】订阅号以便第一时间获得最新内容。本文版权归作者和湖南心莱信息科技有限公司共有欢迎转载但未经作者同意必须保留此段声明且在文章页面明显位置给出原文连接否则保留追究法律责任的权利。文档官网docs.xin-lai.comQQ群编程交流群85318032 产品交流群897857351