如何在Microsoft Excel中将图形保存到PNG或GIF文件?


27

如何在Microsoft Excel中将图形保存到PNG或GIF文件?

我知道我可以另存为HTML文件并使用在那里创建的图像,但是我怀疑有一种方法不会创建我不想要的其他文件。如果建议这样做,我很乐意安装加载项。

如果这很重要,我正在使用Excel 2003和2007。


这是一个解释和指向Excel加载项(免费)的链接,该链接将为您完成:增强的导出图表过程
Jon Peltier

Answers:


34

Excel中缺少这种功能的任何用户访问的支持,但是你可以很容易地解决这个或挖掘到VBA,在此功能提供:


“一次性”导出

  • 选择图形(整个图形,而不是内部组件;因此选择边框)。
  • 复制它(ctrl-c,右键单击复制,任意选择)。
  • 打开MS Paint。
  • 粘贴(您可能希望先将图像尺寸最小化,它将放大以适应尺寸,但不会缩小)。
  • 根据需要保存。

批量出口

您可能想要查看在ActiveChart.ExportVBA宏中的使用,这使您可以指定文件路径,然后让Excel完成工作。

以下是我刚刚整理的一个工作原型。运行此命令,活动工作簿中的每个图表都将以PNG格式导出到与该文件相同的文件夹,_chart##并附加到文件名(其中##数字递增)。

执行任何安全检查(因此将覆盖文件!),并且不包含任何错误检查。它不会工作,如果你还没有保存工作簿,位置是只读的或其他任何阻止写入文件的位置。我仅在Excel 2003中对此进行了测试(因为这是我目前要做的所有事情)。

换句话说:使用风险自负仅供参考

'small nicety to ensure two-digits for better file sorting'
Function NiceFileNumber(num As Integer) As String
    If num < 10 Then
        NiceFileNumber = "0" & num
    Else
        NiceFileNumber = num
    End If
End Function

'the real function'
Sub ExportAllCharts()
    Dim i As Integer, exportCount As Integer
    Dim fileNum As String, fileBase As String
    Dim sheetObj As Worksheet
    Dim chartObj As Chart

    'current file location and name, with extension stripped'
    fileBase = Left(ThisWorkbook.FullName, InStrRev(ThisWorkbook.FullName, ".") - 1)
    exportCount = 0

    'First, export all charts that are in their own sheets'
    For Each chartObj In ActiveWorkbook.Charts
        fileNum = NiceFileNumber(exportCount)
        exportCount = exportCount + 1

        'Do the export'
        chartObj.Export fileBase & "_chart" & fileNum & ".png"
    Next

    'Then, export all charts that are embedded inside normal sheets'
    For Each sheetObj In ActiveWorkbook.Worksheets
        For i = 1 To sheetObj.ChartObjects.count
            fileNum = NiceFileNumber(exportCount)
            exportCount = exportCount + 1

            'Do the export'
            sheetObj.ChartObjects(i).Activate
            ActiveChart.Export fileBase & "_chart" & fileNum & ".png"
        Next i
    Next
End Sub

注意:我'在两端都用s 括了注释,这不是必需的,但有助于确保此处的颜色正确。


我希望有一种方法可以通过按一下按钮将其导出到当前电子表格所在的文件夹中
fmark 2011年

@fmark-然后就是宏的所在,ActiveChart.Export ActiveWorkbook.Path & "\chart.png"绑定到工具栏按钮的宏中的东西(但也许更聪明!)可以完成此工作。
DMA57361 2011年

@fmark,我很无聊,只有几分钟,所以我把一些更完整的东西拼凑在一起了。查看编辑,我认为这将为您提供一个非常坚实的起点。
DMA57361 2011年

干杯! 我会旋转的。
fmark

4

最好的方法是将Excel文件另存为HTML。

然后转到存储图像的文件夹,您将看到所需的PNG图像。


我必须完全同意这确实是最快的方法。到目前为止。
杰夫

3

为了安全地转换为PNG,您可以从Excel复制图形,将其粘贴到Power Point中的幻灯片上,然后执行以下操作。

另存为其他格式,然后选择所需的格式。然后,它将询问您是否要将此设置仅应用于当前幻灯片或所有幻灯片。如果选择所有幻灯片,它将在您指定的目录中创建一个文件夹,并将每个幻灯片以选定的格式保存到其自己的文件中。

它不是很好,但是当您只需要文件时它可能足够快,并且如果您已经使用相同的图形进行了演示,则特别有用。


2

旧线程,但以防万一其他人从Google登陆:Excel 2011 for Mac在右键菜单上有一个“另存为图片”选项,用于执行此操作。


什么版本的Excel?我的Excel 2007绝对没有此功能。坚持使用7年的办公室可能是“节省成本的措施”。
Ogre Psalm33

我正在使用Excel 2011 for Mac。
戴夫穆里根2014年

0

在Excel 2010中,可以通过以下方式执行此操作:

  1. 单击图表以将其选中。
  2. 使用CTRL + C或右键单击并选择“复制”进行复制。
  3. 切换到图形编辑程序(我用过Paint.net)。
  4. 糊。

然后,您可以将图像保存为所需的任何格式。


0

如果您使用的是Greenshot(屏幕捕获软件),则可以在Excel中复制图形(Ctrl+ C),然后右键单击Greenshot的图标,选择“ 从剪贴板打开图像并保存”。无需使用图形编辑器。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.