« Wow, I Was Wrong | Main | Pandora May Close »

Excel Question

I am almost embarrassed to ask this, with as many hours as I have spent in Excel, but I cannot find a way to export a chart or save a chart in Excel directly to an image format like jpeg.  The way I do it is to take a screen shot and then paste the screen shot into photoshop for cropping and saving.  But this is a kludge.  Any suggestions?

The problem I have is that I like to layer multiple charts on top of each other in photoshop, so I can turn on and off different lines on a graph.  I do this to make semi-animated charts for my climate videos.

For example, on the chart above, I like to start with a blank chart with the axes in place and then have the data line draw itself across (which you can do with a simple horizontal wipe between jpeg one with the blank chart and jpeg 2 with the same chart but the data line drawn in, IF the charts are scaled exactly the same.   The problem is that to do this right, I have to make sure I have the screen-shot taken at the same level of zoom each time and I crop the picture identically each time.  A real pain.

Posted on July 18, 2008 at 01:52 PM | Permalink


Try saving a version of the spreadsheet, including the chart, as HTML. The chart should be in the images folder created by the process.

Posted by: epobirs | Jul 18, 2008 2:26:43 PM

In Excel 2007, it's oddly placed under the paste button, which has "as picture" as a choice, and under that you can copy as a picture.

Posted by: knox | Jul 18, 2008 2:39:20 PM

Another option is to use the software Snagit.

Posted by: Dave | Jul 18, 2008 2:58:36 PM

In excel 2003; right-click the chart and select copy - you can the paste it directly into paint and save it as a jpeg - no need to do the screen dump...

Posted by: scott | Jul 18, 2008 3:11:51 PM

Sorry - make sure you right-click the surround to the chart (white space in the default), not actual core of the chart itself...

Posted by: scott | Jul 18, 2008 3:14:11 PM

scott, that's a handy bit to know for Excel 2003. But it's still a kludge pasting into Paint or whichever app and then saving.

A bit of googling came up with a better option. A simple macro does the trick. Past the fllowing into a macro for your target spreadsheet:

Sub Create_PNG()
Dim This As chart
Set This = ActiveSheet.ChartObjects(1).chart
This.Export Filename:="C:\export.png", FilterName:="PNG"
End Sub

Run the macro and it will export to the named image file. I prefer PNG format for line art as it maintains the quality of the original and is much better compression for line art than will JPG.

Posted by: Earle Williams | Jul 18, 2008 4:04:19 PM

what scott said - it may be a kludge, but its easier, simple and flexible.

Posted by: jb | Jul 18, 2008 4:13:15 PM

In the Mac version of Excel (and, I assume, the Windows version), follow these three steps:

1. Right-click on a chart (or any other element such as a cell, text block, or button) to reveal a pop-up menu.
2. Select "Save as Picture..." which causes a dialog window to appear.
3. Enter a name for the chart, choose where you will save it, and choose a graphic format.

The default format is PNG. Other choices are GIF, JPEG, PICT, and BMP. (PICT may not be available in the Windows version.)

Posted by: Dr. T | Jul 18, 2008 4:51:24 PM

Dr. T,

That sounds like the ideal way to do it, and I would think that feature would be part of Excel for Windows. Unfortunately it isn't in Excel 2003. It may be in more recent versions.

Posted by: Earle Williams | Jul 18, 2008 5:00:31 PM

cool, thanks for the help, folks.

Posted by: coyote | Jul 18, 2008 5:08:57 PM

Right click and copy the chart or table in Excel.

In the other application (PowerPoint, Word, etc.,) from the Edit menu select "Paste Special." One of the options is to past as an image (I think .bmp is the default).

No need for macros or anything like that just to paste an image file.

Posted by: David Z | Jul 18, 2008 6:17:44 PM


I had to dig into this a bit more because it's something that has frustrated me for a long time. I've got my Excell 2003 tricked out to export to PNG pretty slick.

First step is to create the macro in your PERSONAL.XLS file. This houses macros that load every time.

I have tweaked my macro to the following:

Sub Export_PNG()
Dim fname As Variant
Dim This As chart

' Select a chart object
Set This = ActiveChart

' get a filename to export image to
fname = Application.GetSaveAsFilename("", "PNG Images (*.png), *.png")
If fname <> False Then
This.Export fileName:=fname, FilterName:="PNG"
End If
End Sub

The next step is to modify the Chart menu....

0) Create a chart and select it, so that the Data menu switches to the Chart Menu
1) Go to Tools->Customize and select the Commands tab
2) In the left box scroll down and select Macros
3) In the right box click on Custom menu item
4) Drag the custom menu item to the chart menu and release it
5) There should now be a new custom menu item in the Chart menu
6) Select this item from the menu - it should pop a dialog and ask what macro to assign to it. Select the Export_PNG macro

In theory this all works and you now have a permanent menu command to export a chart. Just click on the chart you want to export then select the menu item in the CHart menu. I say in theory because I'm still messing with PERSONAL.XLS myself trying to make it all work.

Good luck!

Posted by: Earle Williams | Jul 18, 2008 6:32:30 PM


I have had similar frustrations. Easiest thing I have found is for you to create your chart on a separate Excel sheet, but DO NOT set it up as the entire sheet, rather embed it in a sheet separate from your data.

Then, go to File > Save as Web Page and select the sheet your chart is in.

It will create a folder and a file in the area you designate. Navigate to that folder and the chart will be in a .gif or .jpg image there.

Let me know if you need a run through and I can work one up for you.


Posted by: wintercow20 | Jul 19, 2008 12:29:36 PM

A little late, but I can import a spreadsheet direct into PhotoShop Elementd from OpenOffice's spreadsheet application (hopefully Excel is similar enough). In the chart, I left-clicked the graph only (not the whole chart). Then, I right-clicked and selected COPY. Then I opened PhotoShop and, after the usual long wait, went to NEW on the file menu and "NEW IMAGE FROM CLIPBOARD" on the sub-menu. Works fine. Then you can import another graph and do all the layering in PhotoShop.

Here are links to my OpenOffice spreadsheet, also an xls spreadsheet and the resulting image:


It's well worth down-loading OpenOffice (from Sun Microsystems - the JAVA people) - it's free, as opposed to Gates' expensive offering - and it is really powerful.



Posted by: xpatUSA | Jul 24, 2008 1:09:20 PM

Can someone help me? I need to write a formula that will go and check a column for a particular name, if the name is there I want it to go to another column and count up all the "R" in that column and return a total number of those incidences.

Posted by: Barb | Sep 13, 2008 11:03:58 PM

The comments to this entry are closed.