27

Как сохранить график в формате PNG или GIF в Microsoft Excel?

Я знаю, что могу сохранить как файл HTML и использовать созданное там изображение, но я подозреваю, что есть способ, который не создает другой беспорядок в файлах, которые я не хочу. Я рад установить надстройку, если это рекомендуемый вариант.

Я использую Excel 2003 и 2007, если это имеет значение.

6 ответов6

34

Excel отсутствует какой - либо доступной пользователю поддержку этой функции, но вы можете легко обойти эту проблему или углубимся в VBA, где предусмотрена эта функция:


"Однократный" экспорт

  • Выберите график (весь график, а не внутренний компонент; поэтому выберите границу).
  • Скопируйте его (Ctrl-C, щелкните правой кнопкой мыши, все что угодно).
  • Откройте MS Paint.
  • Вставить (вы можете сначала уменьшить размер изображения, оно будет увеличено, но не уменьшено).
  • Сохраните по желанию.

Массовый экспорт

Возможно, вы захотите взглянуть на использование 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

Примечание: я заключил комментарии в ' s ' на обоих концах, что не нужно, но помогает убедиться, что они здесь правильно окрашены.

4

Лучший способ - сохранить файл Excel в формате HTML.

Затем перейдите в папку, в которой были сохранены изображения, и вы увидите изображения PNG, которые вы хотите.

3

Чтобы безопасно преобразовать в PNG, вы можете скопировать рисунок из Excel, вставить его на слайд в Power Point, а затем сделать следующее.

Сохранить какДругие форматы, затем выберите нужный формат. Затем он спросит, хотите ли вы применить это только к текущему слайду или ко всем слайдам. Если вы выберете все слайды, он создаст папку в указанном вами каталоге и сохранит каждый слайд в свой собственный файл в выбранном формате.

Это не очень элегантно, но может быть достаточно быстрым, когда вам просто нужны файлы, и особенно полезно, если вы уже сделали презентацию с теми же графиками.

2

Старый поток, но на тот случай, если кто-нибудь еще приедет сюда из Google: в Excel 2011 для Mac есть опция "Сохранить как рисунок" в меню правой кнопки мыши, чтобы сделать именно это.

0

В Excel 2010 вы можете сделать это:

  1. Нажмите на график, чтобы выбрать его.
  2. Скопируйте, используя CTRL+C, или щелкнув правой кнопкой мыши и выбрав Копировать.
  3. Переключитесь на программу редактирования графики (я использовал Paint.net).
  4. Вставить.

Затем вы можете сохранить изображение в любом удобном для вас формате.

0

Если вы используете Greenshot (программное обеспечение для захвата экрана), то вы можете скопировать график в Excel (Ctrl+C), затем щелкнуть правой кнопкой мыши значок Greenshot, выбрать « Открыть изображение из буфера обмена» и сохранить его. Не нужно использовать графический редактор.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .