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

27

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

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

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

fmark
источник
Вот объяснение и ссылка на надстройку Excel (бесплатно), которая сделает это за вас: Усовершенствованная процедура экспорта диаграммы
Джон Пельтье

Ответы:

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 на обоих концах, что не нужно, но помогает убедиться, что они здесь правильно окрашены.

DMA57361
источник
Я предпочел бы иметь способ экспортировать его в ту же папку, что и текущая электронная таблица, одним нажатием кнопки
fmark
@fmark - тогда и начинается макрос, что-то вроде ActiveChart.Export ActiveWorkbook.Path & "\chart.png"(но, может быть, немного умнее!) в макросе, привязанном к кнопке панели инструментов, сделает эту работу.
DMA57361
@fmark, мне стало скучно, и у меня было несколько минут, поэтому я собрал что-то гораздо более полное. Проверьте редактирование, я думаю, что это даст вам действительно хорошую отправную точку.
DMA57361
Ура! Я поверну это.
fmark
4

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

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

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

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

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

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

sgildea
источник
2

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

Дейв Маллиган
источник
Какая версия Excel? Мой Excel 2007 определенно не имеет этого. Придерживаться 7-летнего Office, вероятно, является «мерой экономии».
Огр Псалом 33
Excel 2011 для Mac - это то, что я использую.
Дейв Маллиган
0

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

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

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

Уилл Мартин
источник
0

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

gronostaj
источник