У меня есть скрипт, который помещает таблицу в Excel, а затем создает объект диаграммы. Затем Excel решает сделать из этой таблицы свое собственное содержимое серии диаграмм, и, как он полагает, диаграмма должна быть неправильной. (Там есть заголовок и четыре строки данных, но он автоматически создает 42 серии записей) Я пытаюсь удалить все серии и сделать все самостоятельно, но не могу найти синтаксис, который будет работать. Кажется, что это ( Удалить все существующие серии диаграмм Excel ) будет делать это, но я не могу понять, как получить эту работу в PowerShell.
$ExcelObject=New-Object -ComObject Excel.Application
$ExcelWorkbook=$ExcelObject.WorkBooks.Open("c:\Spreadsheet.xlsx")
$ActiveWorksheet=$ExcelWorkbook.WorkSheets.Add()
$ActiveWorksheet.Name=$RequestName
$ActiveWorksheet.Activate()
$ActiveWorksheet.Visible=$True
$ActiveWorksheet.cells.item($RowIndex,1)="Run Number"
Заполнено в остальныхтаблицы
$ActiveChart=$ActiveWorksheet.Shapes.AddChart().Chart
$ActiveChart.chartType = 58
На данный момент я могу сохранить, выйти и открыть Excel, но есть несколько серий, которые мне не нужны.
Я бы хотел сделатьчто-то вроде этого:
foreach ($collection in $ActiveChart.SeriesCollection)
{
$ActiveChart.FullSeriesCollection(0).Delete |Out-Null
}
или это:
foreach ($currentSeries=0; $currentSeries -lt $ActiveChart.Series.Count; $currentSeries++)
{
$currentSeries.Delete()
$ActiveChart.Series.Remove($ActiveChart.Series($currentSeries).Name)
$ActiveChart.Series.RemoveAt($currentSeries)
}
Редактировать: я установил диапазон и мне больше не нужно удалять серию, хотя, как это сделать, безусловно, было бы полезно, если кто-то знает это.
$TableRange="A1:" + "H$($NumberOfUsedRuns + 1)"
$currentRange=$ActiveWorksheet.Range($TableRange)
$ActiveChart.SetSourceData($currentRange)