在Powershell生成的Excel文件中设置图表数据标签的格式

时间:2019-05-16 14:03:47

标签: excel powershell charts format

尝试使用Powershell生成的条形图格式化datalabel字体大小,但不起作用

阅读VBA和.NET的Chart.SeriesCollection的“整个” API。但这无济于事。是虫子还是脑子虫子?有谁可以帮助您?

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

我的尝试(对此有不同的迭代)

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

Powershell错误消息:在此对象上找不到属性“大小”。确认该属性存在并且可以设置。

整个简短的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 :(得分:0)

尝试一下?

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

答案 1 :(得分:0)

应该有两种语法可以使用。

您需要在VBIDE的对象浏览器中选择“显示隐藏的成员”以查看(好像已被弃用,但可以正常工作)的旧版本:

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

新的,经过改进的方式更加复杂:

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

我将让您从VBA转换为PowerShell。