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.
Uah

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.

15 Comments

  1. epobirs:

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

  2. knox:

    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.

  3. Dave:

    Another option is to use the software Snagit.

  4. scott:

    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...

  5. scott:

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

  6. Earle Williams:

    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.

  7. jb:

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

  8. Dr. T:

    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.)

  9. Earle Williams:

    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.

  10. coyote:

    cool, thanks for the help, folks.

  11. David Z:

    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.

  12. Earle Williams:

    Coyote,

    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!

  13. wintercow20:

    Coyote,

    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.

    Best,
    Mike

  14. xpatUSA:

    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:

    kronometric.org/tmp/inflation.jpg
    kronometric.org/tmp/inflation.ods
    kronometric.org/tmp/inflation.xls

    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.

    TTFN,

    Ted

  15. Barb:

    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.