IExportObjectListener

IExportObjectListener interface

Permet aux utilisateurs de manipuler des objets lors de l’exportation.

public interface IExportObjectListener

Méthodes

NomLa description
ExportObject(ExportObjectEvent)Exporter un objet.

Exemples

L’exemple suivant crée un classeur, y ouvre un fichier nommé designer.xls et rend les barres de défilement horizontales et verticales invisibles pour le classeur. Il remplace ensuite deux valeurs de chaîne par une valeur entière et une valeur de chaîne respectivement dans la feuille de calcul et envoie enfin le fichier mis à jour au navigateur client.

[C#]
    // implémentation personnalisée 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)
        {
            // ici enregistrez l'image à n'importe quel emplacement, puis renvoyez l'url (relative ou absolue) que le html généré peut obtenir l'image
            return "temp1/temp2.png";
        }
     }
     
     // Enregistrer le fichier html avec un écouteur personnalisé
        HtmlSaveOptions saveOptions = new HtmlSaveOptions();
        saveOptions.ExportObjectListener = new CustomExportObjectListener();
        Stream stream = File.Create(outfn);
        book.Save(stream, saveOptions);
        stream.Flush();
        stream.Close();

Voir également