IExportObjectListener

IExportObjectListener interface

Позволяет пользователям управлять объектами при экспорте.

public interface IExportObjectListener

Методы

Имя Описание
ExportObject(ExportObjectEvent) Экспорт одного объекта.

Примеры

Следующий пример создает рабочую книгу, открывает в ней файл с именем Designer.xls и делает горизонтальные и вертикальные полосы прокрутки невидимыми для рабочей книги. Затем он заменяет два строковых значения целочисленным значением и строковым значением соответственно в электронной таблице и, наконец, отправляет обновленный файл в клиентский браузер.

[C#]
    //пользовательская реализация 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)
        {
            //здесь сохраните изображение в любом месте, затем верните URL-адрес (относительный или абсолютный), который сгенерированный html может получить изображение
            return "temp1/temp2.png";
        }
     }
     
     // Сохраняем html-файл с пользовательским слушателем
        HtmlSaveOptions saveOptions = new HtmlSaveOptions();
        saveOptions.ExportObjectListener = new CustomExportObjectListener();
        Stream stream = File.Create(outfn);
        book.Save(stream, saveOptions);
        stream.Flush();
        stream.Close();

Смотрите также