Отформатируйте диаграмму DataLabel в сгенерированном Powershell файле Excel - PullRequest
1 голос
/ 16 мая 2019

Попробуйте отформатировать размер шрифта datalabel с помощью диаграммы, созданной PowerShell, но она не работает

Прочитайте "весь" API для Chart.SeriesCollection для VBA и .NET.Но это не помогает.Это ошибка или у меня ошибка мозга?Кто-нибудь, кто может помочь?

https://docs.microsoft.com/de-de/office/vba/api/excel.chart.seriescollection

Моя попытка (с различными итерациями по этому поводу)

$chart.SeriesCollection(1).DataLabels.Format.TextFrame2.TextRange2.Font.Size = 18

Сообщение об ошибке Powershell: не найдено свойство 'Size'на этом объекте.Убедитесь, что свойство существует и может быть установлено.

Весь короткий сценарий powershell:

$excel = New-Object -comobject Excel.Application
$excel.Visible = $True
$workbook = $excel.Workbooks.Add()
$sheet = $excel.Worksheets.Item(1)
$sheet.Activate() | Out-NULL

$sheet.Cells.Item(1,1).Value2 = "City"
$sheet.Cells.Item(1,2).Value2 = "Citizens"
$sheet.Cells.Item(2,1) = "Offenbach"
$sheet.Cells.Item(2,2) = 111020
$sheet.Cells.Item(3,1) = "Heusenstamm"
$sheet.Cells.Item(3,2) = 18200
$sheet.Cells.Item(4,1) = "Rembruecken"
$sheet.Cells.Item(4,2) = 1850

$range = "A1:B4"
$chartSelect = $sheet.range($range)
$ch = $sheet.shapes.addChart().chart
$ch.chartType = 51

$ch.ApplyDataLabels(2)
$ch.SeriesCollection(1).DataLabels.Format.TextFrame2.TextRange2.Font.Size = 18
$ch.setSourceData($chartSelect)

Ответы [ 2 ]

0 голосов
/ 24 мая 2019

Есть пара синтаксисов, которые должны работать.

Старый, который вам нужно выбрать «Показать скрытые элементы» в браузере объектов VBIDE, чтобы увидеть (как будто он устарел, но работает нормально).):

ActiveChart.SeriesCollection(2).DataLabels.Font.Size = 18

Новый, улучшенный и более сложный:

ActiveChart.SeriesCollection(2).DataLabels.Format.TextFrame2.TextRange.Font.Size = 18

Я дам вам возможность перейти с VBA на PowerShell.

0 голосов
/ 16 мая 2019

Попробуйте это?

1..3| %{$ch.SeriesCollection(1).DataLabels($_).Font.Size = 18}
...