Question: I have an Excel sheet with two column, one is a number , and second column have a picture.
i want to read these data from c# with oledb connection, i can read number easily , but pictures is not contained in second column , so in c# i just get first column.

now, how can i read the images ? i want to extract the numbers and related images from this excel sheet.

Answer: 
Not possible, I'm afraid.

Pictures do not live in cells -- you can place them *over* the cell, and you can size them to look like they are in the cell, but they in no way occupy that cell.

You can manipulate image contents of a worksheet using VBA and COM interop, but not OLEDB.
[Nick's answer](https://stackoverflow.com/a/4997875/5621827)  work great for me in my web application with a little change it was not copying image to clipboard 

```
 Thread thread = new Thread(() =>
                {
                    foreach (var pic in ws.Pictures())
                    {
                        if (pic != null)
                        {
                            //This code will detect what the region span of the image was
                            int startCol = pic.TopLeftCell.Column;
                            int startRow = pic.TopLeftCell.Row;
                            int endCol = pic.BottomRightCell.Column;
                            int endRow = pic.BottomRightCell.Row;
                            pic.CopyPicture(XlPictureAppearance.xlScreen, XlCopyPictureFormat.xlBitmap);
                            if (Clipboard.GetDataObject() != null)
                            {
                                Image img = Clipboard.GetImage();
                            }
                        }
                    }
                });
                thread.SetApartmentState(ApartmentState.STA);
                //Set the thread to STA
                thread.Start();
                thread.Join();

```

Works for me