Как удалить все серии в диаграмме Excel из PowerShell - PullRequest
0 голосов
/ 28 октября 2019

У меня есть скрипт, который помещает таблицу в 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...