如何在Excel工作簿中选择图表并使用Powershell导出?

时间:2018-03-26 18:45:36

标签: excel powershell

我有一个excel工作簿,其中包含不同工作表中的图表。我需要使用Powershell以图像格式导出所有图表/数据透视表。

我能够打开excel工作簿并使用powershell激活当前工作表(下面的代码)。但我不知道如何在工作表上选择图表并将其导出。

$Excel = New-Object -ComObject excel.application
$Excel.visible = $true
$Excel.WindowState = "xlMaximized"
$source_wb = $excel.Workbooks.open(C:/abc.xml)
$source_ws = $source_wb.Worksheets.item(1) 
$source_ws.activate() 

如何继续使用此代码选择图表并将其导出?

1 个答案:

答案 0 :(得分:0)

这段代码对我有用。 (只是从我正在执行图表导出的脚本中附加for循环)

$macros_wb = $excel.Workbooks.open(xyz.xlsx)

$chart_worksheets = @("Open Bugs", "Open Stories", "Change Rate", "Cumulative Chart", "Weekly Progress")

$OutputType = "JPG"

foreach ($item in $chart_worksheets)
    {
        $macros_ws = $macros_wb.WorkSheets.item($item)
        $macros_ws.activate()
        $excelchart = $macros_ws.ChartObjects(1)
        $Excel.Goto($excelchart.TopLeftCell,$true) 
        $ImagePath = Join-Path -Path $Destination -ChildPath ($macros_ws.Name + "_" + ($excelchart.Chart.ChartTitle.Text) + ".$OutputType")
        if ($excelchart.Chart.Export($ImagePath, $OutputType)) #Export returns true/false for success/failure
            {Write-Output "Exported $ImagePath"}
        else
            {Write-Output "Failure Exporting $ImagePath"}
    }