如何将图表保存为 Microsoft Excel 中的 PNG 或 GIF 文件?

如何将图表保存为 Microsoft Excel 中的 PNG 或 GIF 文件?

如何将图表保存为 Microsoft Excel 中的 PNG 或 GIF 文件?

我知道我可以将其保存为 HTML 文件并使用其中创建的图像,但我怀疑有一种方法不会产生我不想要的其他文件混乱。如果这是推荐的选项,我很乐意安装插件。

如果有必要的话,我正在使用 Excel 2003 和 2007。

答案1

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 包裹了注释',虽然这不是必需的,但有助于确保它们在这里的颜色正确。

答案2

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

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

答案3

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

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

它不是很优雅,但是当您只需要文件时它可以足够快,并且如果您已经用相同的图表制作了演示文稿,它会特别有用。

答案4

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

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

然后您可以按照您喜欢的任何格式保存图像。

相关内容