Excel carece de soporte accesible para el usuario para esta funcionalidad, pero puede solucionarlo fácilmente o profundizar en VBA, donde esta funcionalidad es proporciona :
Exportación "one-shot"
- Seleccione el gráfico (todo el gráfico, no un componente interno; seleccione el borde).
- Cópielo (ctrl-c, haga clic con el botón derecho en copiar, lo que quiera).
- Abra MS Paint.
- Pegue (es posible que primero desee minimizar el tamaño de la imagen, se ampliará para ajustarse, pero no se reducirá).
- Guarda como desees.
Exportación masiva
Probablemente desee ver el uso ActiveChart.Export
en una macro VBA, esto le permite especificar una ruta de archivo y luego permite que Excel haga el trabajo.
A continuación se muestra un prototipo funcional que acabo de armar. Ejecute este y todos los gráficos del libro activo se exportarán a la misma carpeta que ese archivo, en formato PNG, junto _chart##
con el nombre del archivo (donde ##
hay un número creciente).
Que no se realiza ninguna comprobación de seguridad (por lo que se sobreponen a los archivos!) Y no contiene ninguna comprobación de errores. Que no va a funcionar si usted todavía no ha guardado el libro, es la ubicación de sólo lectura o cualquier otra cosa que impide que se escriba a la ubicación del archivo. Solo he probado esto en Excel 2003 (ya que eso es todo lo que tengo a mano en este momento).
En otras palabras: use bajo su propio riesgo , esto es solo un ejemplo básico de trabajo .
'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
Nota: He incluido los comentarios en '
s en ambos extremos, lo cual no es necesario, pero ayuda a asegurar que estén coloreados correctamente aquí.