fma*_*ark 27 png gif charts microsoft-excel
如何在 Microsoft Excel 中将图形保存为 PNG 或 GIF 文件?
我知道我可以另存为 HTML 文件并使用在那里创建的图像,但我怀疑有一种方法不会创建我不想要的其他混乱文件。如果这是推荐的选项,我很乐意安装加载项。
如果重要的话,我正在使用 Excel 2003 和 2007。
DMA*_*361 34
Excel中缺少这种功能的任何用户访问的支持,但是你可以很容易地解决这个或挖掘到VBA,在此功能中提供:
您可能希望查看在ActiveChart.Export
VBA 宏中使用,这可以让您指定文件路径,然后让 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
Run Code Online (Sandbox Code Playgroud)
注意:我在'
s 的两端都包含了注释,这不是必需的,但有助于确保它们在此处正确着色。