如题:
在C/S下已经初步解决此问题,
但在B/S下却卡了,请高手不吝赐教,

解决方案 »

  1.   

    出现问题的代码块是这样的:
    .....
    Shape.CopyPicture(参数);//将图片复制到剪贴板
    IDataObject iData=Clipboard.GetDataObject();//从剪贴板获取过来
    .....
    这两行代码在C/S下能正常执行实现,但在B/S下就不行了,获取不到,iData为NULL专就剪贴问题的贴:
    http://topic.csdn.net/u/20090226/11/7f72fb81-8e37-4f87-a5ec-dd1a16574242.html
      

  2.   

    代码摘要如下:
    Object o = Type.Missing;
    Microsoft.Office.Interop.Excel.Application objExcelApp = new Microsoft.Office.Interop.Excel.Application();
    objExcelApp.DisplayAlerts = false;
    objExcelApp.Visible = false;
    Workbook objWorkbook = objExcelApp.Workbooks.Open("E:\\Book1.xls", o, o, o, o, o, o, o, o, o, o, o, o, o, o);
    Worksheet objWorksheet = (Worksheet)objWorkbook.ActiveSheet;
    Shapes objShapes = objWorksheet.Shapes;
    int shapesCount = objShapes.Count;
    PictureBox objPictureBox = new PictureBox();
    Range objRange;
    for (int i = 1; i < shapesCount; i++)
    {
        objShapes.Item(i).CopyPicture(Appearance.Button, XlCopyPictureFormat.xlBitmap);
        IDataObject objIDO = (IDataObject)Clipboard.GetDataObject();
        if (objIDO.GetDataPresent(DataFormats.Bitmap))
        {
            objPictureBox.Image = (Bitmap)objIDO.GetData(DataFormats.Bitmap);
            objPictureBox.Image.Save("E:\\" + i+ ".jpg");
        }
        else
        {
            objPictureBox.Image = null;
        }
    }
    objExcelApp.Quit();
    objExcelApp = null;
      

  3.   

    B/S是运行在服务端的,取不到客户端的剪贴板;一、先上传Excel文件到服务器,取到上传后的物理路径;
    二、再用你的代码生成图片到服务器本地,取到图片的URL。
    三、弹出下载窗口将图片下载回来。
      

  4.   

    估计是你OPen和save问题!应该加Server.MapPath,而你的c/s结构你能直接操作本地!远程是网络!而b/s不一样!