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)
        {
            //这里将图片保存到任意位置,然后返回生成的html可以获取图片的url(相对或绝对)
            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();

也可以看看