【问题标题】:R: How to extract charts from MS Excel spreadsheet?R:如何从 MS Excel 电子表格中提取图表?
【发布时间】:2017-06-18 10:39:04
【问题描述】:

我环顾四周,但找不到从 Excel 电子表格中自动提取图表的方法。 (我选择的工具是 R,但我会​​考虑其他选择。)

有人做过吗?

更新:我有一堆使用 Excel 2013 创建的电子表格,我想将所有图表提取为图片(例如 PNG)。我不介意使用 VBA,但我需要能够同时在所有电子表格上运行代码,因为逐个处理它们会破坏本练习的目的。

【问题讨论】:

  • 你能说得更具体些吗?您有可用的 Excel(哪个版本)? VBA 解决方案会好吗?
  • 更新了问题。
  • 好吧,我会使用 VBA(请注意,我不会在 Excel 中生成这些图表)。图表对象有一个导出方法,所以这应该不会太难。您可能需要添加 VBA 标记。

标签: r excel vba charts extract


【解决方案1】:

假设您的所有图表都嵌入在普通工作表中(例如 Sheet1、Sheet2)而不是图表表(例如 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

我测试了它并且它有效。这应该迭代所有打开的工作簿、所有工作表并导出所有图表对象。

【讨论】:

  • 酷,非常感谢!我必须打开所有电子表格,但手动提取所有图表仍然少得多。
  • 不客气!您可以遍历您的文件夹并打开和关闭文件。查看 Dir() 函数。然后使用 application.workbooks.open。
猜你喜欢
  • 2014-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-31
相关资源
最近更新 更多