Як я можу зберегти графік у файлі PNG або GIF у Microsoft Excel?


27

Як я можу зберегти графік у файлі PNG або GIF у Microsoft Excel?

Я знаю, що можу зберегти як файл HTML і використовувати зображення, створене там, але я підозрюю, що існує спосіб, який не створює інших безладів файлів, які я не хочу. Я радий встановити надбудову, якщо це рекомендований варіант.

Я використовую Excel 2003 та 2007, якщо це має значення.


Ось пояснення та посилання на надбудову Excel (безкоштовно), яка зробить це за вас: Розширена процедура експортної діаграми
Jon Peltier

Відповіді:


34

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


"Одноразовий" експорт

  • Виберіть графік (весь графік, а не внутрішній компонент; тому виберіть межу).
  • Скопіюйте його (ctrl-c, клацніть правою кнопкою миші копію, що завгодно).
  • Відкрийте фарбу MS.
  • Вставити (ви можете спочатку зменшити розмір зображення, воно збільшиться до розміру, але не зменшиться).
  • Збережіть за бажанням.

Масовий експорт

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


Я вважаю за краще мати спосіб експортувати його в ту саму папку, що і поточна електронна таблиця при натисканні кнопки
позначте

@fmark - тоді саме тут входить макрос, щось подібне ActiveChart.Export ActiveWorkbook.Path & "\chart.png"(але, можливо, трохи розумніше!) у макросі, прив’язаному до кнопки панелі інструментів, зробить цю роботу.
DMA57361

@fmark, я нудьгував і мав кілька хвилин, тому я зібрав щось набагато повніше. Ознайомтеся з редагуванням, я думаю, що це дасть вам справді солідний вихідний пункт.
DMA57361

Ура! Я дам йому кружляння.
fmark

4

Найкращий спосіб - зберегти файл Excel у вигляді HTML.

Потім перейдіть до папки, де зберігалися зображення, і ви побачите потрібні зображення PNG.


Я мушу повністю погодитися, що це дійсно найшвидший метод. На багато.
Jeef

3

Щоб безпечно перетворити в PNG, ви можете скопіювати фігуру з Excel, вставити її на слайд у Power Point, після чого виконайте наступне.

Збережіть якІнші формати , а потім виберіть потрібний формат. Потім він запитає, чи хочете ви застосувати це лише до поточного слайда або до всіх слайдів. Якщо ви виберете всі слайди, він створює папку у вказаному вами каталозі та зберігає кожен слайд у власному файлі у вибраному форматі.

Це не дуже елегантно, але може бути досить швидким, коли вам просто потрібні файли, і особливо корисно, якщо ви вже зробили презентацію з тими ж графіками.


2

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


Яка версія Excel? У мого Excel 2007 цього точно немає. Дотримуватися 7-річного офісу, ймовірно, "міра економії витрат".
Псалом Огр33,

Я використовую Excel 2011 для Mac.
Дейв Малліган

0

У Excel 2010 ви можете це зробити:

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

Тоді ви можете зберегти зображення в будь-якому бажаному форматі.


0

Якщо ви використовуєте Greenshot (програмне забезпечення для захоплення екрану), то можете скопіювати графік у Excel ( Ctrl+ C), потім клацніть правою кнопкою миші піктограму Greenshot, виберіть Відкрити зображення з буфера обміну та збережіть його. Не потрібно використовувати графічний редактор.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.