我有一个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()
如何继续使用此代码选择图表并将其导出?
答案 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"}
}