Solved

Add image to Excel sheet using .Net

Posted on 2009-04-09
4
317 Views
Last Modified: 2012-06-22
I am developing Web application in which file download facility. Before file download image added to specified cell. But in my case it add to A1 cell.
0
Comment
Question by:nahanfee
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
4 Comments
 
LVL 6

Expert Comment

by:HarryNS
ID: 24107210
Add Microsoft Excel Object as reference to your application and use the following code. This will work.
using A = Microsoft.Office.Interop.Excel;
        
        private void insertImage()
        {
            A.Application ThisApplication = new A.ApplicationClass();
            A.Workbook ThisWorkBook;
 
 
            string _stFileName = "C:\\Hari\\Test.xls";
            string _stPicture = @"C:\Documents and Settings\149525\My Documents\My Pictures\check.bmp";
            object missing = System.Reflection.Missing.Value;
 
            try
            {
                ThisWorkBook = ThisApplication.Workbooks.Open(_stFileName, missing, missing, 5, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing);
                A.Worksheet ThisSheet = (A.Worksheet)ThisWorkBook.Sheets[2];
 
                ThisSheet.Cells[1, 1] = "test";
 
                A.Range oRange = (A.Range)ThisSheet.Cells[1, 2];
 
                Image oImage = Image.FromFile(_stPicture);
                System.Windows.Forms.Clipboard.SetDataObject(oImage, true);
                ThisSheet.Paste(oRange, _stPicture);
 
                ThisWorkBook.Save();
            }
            catch (Exception oEx)
            {
            }
            finally
            {
                ThisApplication.Quit();
                ThisWorkBook = null;
                ThisApplication = null;
            }
 
        }

Open in new window

0
 

Author Comment

by:nahanfee
ID: 24113599
Any other solution without paste.
0
 
LVL 6

Accepted Solution

by:
HarryNS earned 250 total points
ID: 24128592
Then you can use this code,
private void insertImage()
        {
            A.Application ThisApplication = new A.ApplicationClass();
            A.Workbook ThisWorkBook;
 
 
            string _stFileName = "C:\\Hari\\Test.xls";
            string _stPicture = @"C:\Documents and Settings\149525\My Documents\My Pictures\check.bmp";
            object missing = System.Reflection.Missing.Value;
 
            try
            {
                ThisWorkBook = ThisApplication.Workbooks.Open(_stFileName, missing, missing, 5, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing);
                A.Worksheet ThisSheet = (A.Worksheet)ThisWorkBook.Sheets[2];
 
                ThisSheet.Cells[1, 1] = "test";
                ThisSheet.Shapes.AddPicture(_stPicture, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoTrue, 10, 10, 70, 70);
 
                //A.Range oRange = (A.Range)ThisSheet.Cells[1, 2];
 
                //Image oImage = Image.FromFile(_stPicture);
                //System.Windows.Forms.Clipboard.SetDataObject(oImage, true);
                //ThisSheet.Paste(oRange, _stPicture);
 
                ThisWorkBook.Save();
            }
            catch (Exception oEx)
            {
            }
            finally
            {
                ThisApplication.Quit();
                ThisWorkBook = null;
                ThisApplication = null;
            }
 
        }

Open in new window

0

Featured Post

Stressed Out?

Watch some penguins on the livecam!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

More often than not, we developers are confronted with a need: a need to make some kind of magic happen via code. Whether it is for a client, for the boss, or for our own personal projects, the need must be satisfied. Most of the time, the Framework…
This article shows how to deploy dynamic backgrounds to computers depending on the aspect ratio of display
NetCrunch network monitor is a highly extensive platform for network monitoring and alert generation. In this video you'll see a live demo of NetCrunch with most notable features explained in a walk-through manner. You'll also get to know the philos…
Monitoring a network: why having a policy is the best policy? Michael Kulchisky, MCSE, MCSA, MCP, VTSP, VSP, CCSP outlines the enormous benefits of having a policy-based approach when monitoring medium and large networks. Software utilized in this v…

705 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question