IExportObjectListener

IExportObjectListener interface

Permite a los usuarios manipular objetos durante la exportación.

public interface IExportObjectListener

Métodos

NombreDescripción
ExportObject(ExportObjectEvent)Exportar un objeto.

Ejemplos

El siguiente ejemplo crea un libro de trabajo, abre un archivo llamado designer.xls y hace que las barras de desplazamiento horizontal y vertical sean invisibles para el libro de trabajo. Luego reemplaza dos valores de cadena con un valor entero y un valor de cadena respectivamente dentro de la hoja de cálculo y finalmente envía el archivo actualizado al navegador del cliente.

[C#]
    //implementación personalizada de IExportObjectListener
    class CustomExportObjectListener : IExportObjectListener
    {
        private int imgIdx = 0;
        public object ExportObject(ExportObjectEvent e)
        {
            Object source = e.GetSource();
            if (source is Shape)
            {
                Shape shape = (Shape)source;
                string url = null;
                switch (shape.MsoDrawingType)
                {
                    case MsoDrawingType.Picture:
                    {
                        url = SaveImage(((Picture)shape).Data, imgIdx, ((Picture)shape).ImageFormat);
                        break;
                     }
                }
                if (url != null)
                {
                    imgIdx++;
                }
                return url;
            }
            return null;
        }
        private string SaveImage(byte[] data, int imgIdx, ImageFormat format)
        {
            //aquí guarde la imagen en cualquier ubicación, luego devuelva la url (relativa o absoluta) que el html generado puede obtener la imagen
            return "temp1/temp2.png";
        }
     }
     
     //Guardar archivo html con oyente personalizado
        HtmlSaveOptions saveOptions = new HtmlSaveOptions();
        saveOptions.ExportObjectListener = new CustomExportObjectListener();
        Stream stream = File.Create(outfn);
        book.Save(stream, saveOptions);
        stream.Flush();
        stream.Close();

Ver también