代码摘要如下: 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;
.....
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
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;
二、再用你的代码生成图片到服务器本地,取到图片的URL。
三、弹出下载窗口将图片下载回来。