Ich habe ein Problem mit Powershell und Excel.Zählen von PivotTables aus einer Excel-Arbeitsmappe mit Powershell
Zunächst ist meine Powershell-Version 2 und Excel-Version 2010 x86.
Mein Code ist:
#Start Excel
[Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Interop.Excel") | Out-Null
$ObjXls = New-Object "Microsoft.Office.Interop.Excel.ApplicationClass"
$ObjXls.Visible = $False
$ObjXls.ScreenUpdating = $False
$ObjXls.DisplayAlerts = $False
#Open the template workbook
[String] $Private:TemplateFilePath = "$($Params['TEMPLATE_PATH'])\$TemplateFileName"
WriteLog -Message "Template file: $TemplateFilePath"
$WbXls = $ObjXls.Workbooks.open($TemplateFilePath)
$WbXls.RefreshAll()
#Counting Pivot Tables
ForEach ($sheet in $WbXls.Worksheets)
{
if ($sheet.Name -ne "LiteDB") {
[int]$count = $sheet.PivotTables.Count
[string]$sheetname = $sheet.Name
writelog ($sheetname + " --- " + $count)
For ($i = 0; $i -le $sheet.PivotTables.Count; $i++) {
if (-not $sheet.PivotTables($i).RefreshTable()) {throw "Unable to refresh PivotTable"}
$sheet.PivotTables($i).RefreshTable()
$sheet.PivotTables($i).PivotFields("Week").CurrentPage=$Currentweek
}
}
}
Um klar zu sein die „Writelog“ Befehl ist eine Bibliothek von mir erstellt eine Log-Datei zu erzeugen, ist es
funktioniert so darüber keine Sorge.
Der Ausgang ist der Name der Blätter und die Zählung der Pivot-Tabellen ... aber:
NS --- 0, SM --- 0, QTY --- 0
Auf jedem Blatt i eine Pivot-Tabelle, aber was ist falsch? Warum erkennt die Pivots auf den Blättern nicht?
Können Sie mir dabei helfen?