2017-02-01 2 views
1

Я осмотрелся, но не смог найти способ автоматического извлечения диаграмм из электронных таблиц Excel. (Мой инструмент выбора - R, но я бы рассмотрел альтернативы.)R: Как извлечь графики из таблицы MS Excel?

Кто-нибудь это сделал?

Обновление: У меня есть куча электронных таблиц, которые я создал с помощью Excel 2013, и я хотел бы извлечь все диаграммы в виде изображений (например, PNG). Я не возражаю против использования VBA, но мне нужно иметь возможность запускать код на все таблицы сразу, так как прохождение через них один за другим побеждает цель этого упражнения.

+0

Не могли бы вы быть более конкретными? У вас есть Excel (какая версия)? Будет ли решение VBA в порядке? – Roland

+0

Обновлен вопрос. – Mikhail

+0

Ну, я бы использовал VBA (разумеется, я бы не производил эти диаграммы в Excel). Существует метод экспорта для объектов диаграммы, поэтому это не должно быть слишком сложно. Возможно, вы захотите добавить тег VBA. – Roland

ответ

2

Если предположить, что все ваши диаграммы встраиваются в нормальных рабочих листов (например Лист1, Лист2), а не листов диаграмм (например, Chart1) ... Попробуй что-нибудь подобное в VBA:

Sub exportAllCharts() 

Dim folder As String 
Dim filename As String 
Dim wb As Workbook 
Dim ws As Worksheet 
Dim cObj As ChartObject 

folder = "C:\" 'Make sure to have the trailing slash 
For Each wb In Application.Workbooks 
    For Each ws In wb.Worksheets 
    For Each cObj In ws.ChartObjects 
     filename = wb.Name & " " & ws.Name & " " & cObj.Name & ".png" 'Or whatever your code is to name your file... 
     cObj.Chart.Export folder & filename 
    Next cObj 
    Next ws 
Next wb 
End Sub 

Я проверил его и оно работает. Это должно перебрать все открытые книги, все рабочие листы и экспортировать все объекты диаграммы.

+0

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

+0

Добро пожаловать! Вы можете выполнять итерацию через свои папки и открывать и закрывать файлы. Посмотрите на функцию Dir(). Затем используйте application.workbooks.open. – Benjamin