ASP.NET biblioteca de código abierto Magicodes.IE la importación y exportación de Excel completa imagen de importación y exportación

Magicodes.IE Excel foto de importación y exportación

Para responder mejor a iterar sobre la base de la función real, se parte de la planificación 2.2 hito, se combinarán las sugerencias y comentarios de la comunidad para iterar, puede hacer clic aquí para enviar sus comentarios y sugerencias:
https://github.com/ dotnetcore / Magicodes.IE / temas / 46

explicación

Este tutorial capítulo se explica cómo utilizar Magicodes.IE.Excel para la importación y exportación de imagen.

puntos

  • DTO puede configurar Excel exportación fotos
  • DTO puede configurar para importar Excel Imagen

De imágenes Características Importación y Exportación Descripción

ExportImageFieldAttribute

  • La Altura : altura (por defecto 15)
  • El Ancho : Ancho (por defecto 50)
  • Alt : Reemplazar archivo de texto no existe

ImportImageFieldAttribute

  • ImageDirectory : imágenes ruta de almacenamiento (por defecto se almacena en el directorio temporal)
  • ImportImageTo : el modo de exportación de imagen (la base 64 por defecto), de manera solidaria son los siguientes:
    /// <summary>
    ///     图片导入类型
    /// </summary>
    public enum ImportImageTo
    {
        /// <summary>
        ///     导入到临时目录
        /// </summary>
        TempFolder,

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

Los pasos principales

1. El paquete de instalación Magicodes.IE.Excel

Install-Package Magicodes.IE.Excel

2. Uso Magicodes.IE.Excel exportar a Excel Imagen

Como se muestra en el siguiente código de ejemplo, tenemos que añadir en las propiedades de imagen ExportImageFieldAttribute características, las características de utilización "Ancho" especifica los atributos de la anchura de la imagen, "Altura" especifica los atributos de la altura de la imagen, "Alt" define el texto de reemplazo, es decir, cuando la imagen no existe cuando se muestra este texto:

   [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; }
    }

Vale la pena destacar:

  • ExportImageFieldAttribute característica es una necesidad
  • La imagen Tipo de propiedad debe ser de tipo cadena, apoyar dirección de cuadro de imagen local y remota

A continuación, puede utilizar la API para realizar la exportación. De hecho, además de diferente Dto deriva API o una, como se muestra en los siguientes códigos:

        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);
        }

Como se muestra en el código anterior, la imagen actual puede exportarse a una dirección de conjunto de imágenes a distancia, y un imágenes de direcciones locales, y puede ser ajustado a cero (nula texto alternativo será reemplazado). Resultados Como se muestra:

3. Importar imágenes utilizando Magicodes.IE.Excel

soportes Magicodes.IE.Excel importar desde Excel, sólo tiene que utilizar la característica "ImportImageField". Es compatible con dos formas de importar:

  • En un directorio temporal
  • Importada como base 64

Sólo hay que establecer la propiedad ImportImageTo.

Enumeración ImportImageTo

  • Base64 importa como una base 64

  • TempFolder en un directorio temporal

Es de destacar que, supra, como la imagen Características del tipo de campo sólo admite tipo de cadena.

Listo para ser importado contiene un cuadro de Excel

Antes de empezar, tenemos que estar listo para importar Excel, en este ejemplo la plantilla como se muestra a continuación:

En un directorio temporal

modelo Dto como sigue:


    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; }
    }

La importación o la importación, simplemente ajuste Dto ha cambiado:

        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));
        }

Como se muestra a continuación, la imagen de Excel se importará en el directorio temporal. Vale la pena destacar:

  • Después de la imagen en un directorio temporal, si los resultados de importación en línea con las necesidades del negocio, pasar de inmediato la imagen con la ubicación oficial de almacenamiento, tales como directorios web, almacenamiento en la nube;
  • También es compatible con la imagen de importar la ubicación especificada, pero no es recomendable.

Las imágenes se importan como base 64

Las imágenes se importan como base 64 sólo se establece "ImportImageTo" valor de la propiedad "ImportImageTo.Base64" se puede:


    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; }
    }

Importar código anterior:


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

Como se muestra a continuación, hemos sido muy convenientes base 64 resultado de la imagen codificados:

Referencia

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

Supongo que te gusta

Origin www.cnblogs.com/yyfh/p/12515229.html
Recomendado
Clasificación