Learn how to a build a cloud-first strategyRegister Now

x
?
Solved

How to insert a picture into Excel file and save the file with the picture in C#?

Posted on 2006-06-09
6
Medium Priority
?
8,534 Views
Last Modified: 2008-01-09
I created an Excel file using C# and I need to insert a picture in it and save the file with the picture.

I used the following code to insert a picture into a cell, and it worked - the picture was inserted into the opened file
                        oXL = new Excel.Application();
                        //Get a new workbook.
                        oWB = (Excel._Workbook)(oXL.Workbooks.Add( Missing.Value ));
                        oSheetP = (Excel._Worksheet)oWB.Worksheets[1];
                        oXL.Visible = true;

                                                                //populate the file below
                                                                // ....................some code
                                                               
                                                                // insert a picture
                        string thelogo = currentDir + "\\images\\logo.gif";
                        System.Drawing.Image oImage = System.Drawing.Image.FromFile(thelogo);
                        Excel.Range imgRange;

                        imgRange = (Excel.Range)oSheetP.Cells[1, 12];
                        System.Windows.Forms.Clipboard.SetDataObject(oImage, true);
                        oSheetP.Paste(imgRange, thelogo);

But then I used the following code to save the file, and the picture was not saved.  (In the process of file saving, I was notified by the prompt box that the picture will be lost, and it was lost.)
                  oWB.SaveAs(MyFileName, Excel.XlFileFormat.xlXMLSpreadsheet,
                                    System.Reflection.Missing.Value, System.Reflection.Missing.Value,
                                    System.Reflection.Missing.Value, System.Reflection.Missing.Value,
                                    Excel.XlSaveAsAccessMode.xlNoChange,
                                    System.Reflection.Missing.Value, System.Reflection.Missing.Value,
                                    System.Reflection.Missing.Value, System.Reflection.Missing.Value,
                                    System.Reflection.Missing.Value);

How can I save the file to preserve a picture in it?
Do I need to use another code to insert a picture or another code to save the file?

Please not that when I just tried to save the opened file by clicking on File/Save As on the Excel menu, the file was saved, and the picture was saved as well.  So the picture can be saved.  But I need to save the file using C# code, and it is just that this Workbook.SaveAs( ) method does not do the work.

Please suggest a solution
0
Comment
Question by:pavelmed
  • 4
6 Comments
 
LVL 44

Expert Comment

by:bruintje
ID: 16871842
Hi pavelmed,
----------

you are using excel xml format in the save method is that what you want? if you use the normal excel save from the file menu did you use xml as the file format too?

----------
bruintje
share what you know, learn what you don't
0
 
LVL 25

Accepted Solution

by:
dstanley9 earned 1000 total points
ID: 16872092
When I save an Excel file as an XML spreadsheet, I get the following warning:

The following features from your workbook will not be saved in the XML Spreadsheet:

* AutoShapes, other objects, or charts

Do you want to continue saving as an XML Spreadsheet?


So it appears that XML spreadsheets do not support embedded objects (including images).
0
 
LVL 44

Assisted Solution

by:bruintje
bruintje earned 1000 total points
ID: 16872155
no indeed, normal xml does not store images either if it at all they will be stored as link, xml is purely a text format and images are not embedded
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 44

Expert Comment

by:bruintje
ID: 16872165
they are probably stored in a seperate folder with the file as the html format did when you save a excel sheet as webpage
0
 

Author Comment

by:pavelmed
ID: 16872195
Thanks to both of you!
I did not want to save the file as XML format, I just did not notice that it was saved this way.
I changed the format to xlExcel9795, and it worked!

Thank you for answering so quickly!

I'll split points since you both helped me.  Have a good day!
0
 
LVL 44

Expert Comment

by:bruintje
ID: 16872210
great it worked for you, thanks for the grade :)
0

Featured Post

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

Question has a verified solution.

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

Article by: Najam
Having new technologies does not mean they will completely replace old components.  Recently I had to create WCF that will be called by VB6 component.  Here I will describe what steps one should follow while doing so, please feel free to post any qu…
Summary: Persistence is the capability of an application to store the state of objects and recover it when necessary. This article compares the two common types of serialization in aspects of data access, readability, and runtime cost. A ready-to…
Please read the paragraph below before following the instructions in the video — there are important caveats in the paragraph that I did not mention in the video. If your PaperPort 12 or PaperPort 14 is failing to start, or crashing, or hanging, …
Is your data getting by on basic protection measures? In today’s climate of debilitating malware and ransomware—like WannaCry—that may not be enough. You need to establish more than basics, like a recovery plan that protects both data and endpoints.…
Suggested Courses

810 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