for (int row = 1; row <= ws.UsedRange.Rows.Count; row++) { for (int col = 1; col <= ws.UsedRange.Columns.Count; col++) { Range rge = ws.Cells[row, col] as Range; foreach (Shape sh in ws.Shapes) { Range rg = excel.get_Range(sh.TopLeftCell, sh.BottomRightCell); if (excel.Intersect(rge, rg, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing) != null) { sh.CopyPicture(Appearance.Button, Microsoft.Office.Interop.Excel.XlCopyPictureFormat.xlBitmap); IDataObject data = Clipboard.GetDataObject(); if (data.GetDataPresent(DataFormats.Bitmap)) { Image image = (Image)data.GetData(DataFormats.Bitmap, true); image.Save("test.jpg", System.Drawing.Imaging.ImageFormat.Jpeg); } } } } } |