使用PowerShell刷新Excel表

我在一个名为test的文件夹中有10个excel表格。 我想使用Windows Power Shell脚本刷新数据透视表中的数据连接和数据。 该过程是使用每个循环打开每个文件,然后在文件中selectpowerpivot菜单刷新所有的数据,将刷新OLEDB和OLAP查询,然后closures该页面,并进入数据选项卡,点击刷新全部button后在每张Excel表格中刷新工作簿5张表格中有5张B4表示切片机中的月份。 我们需要在所有4张表中select前一个月,比保存excel.xlsx文件,并转到下一个文件做相同的过程。 我有基本的代码,如果有人可以帮助修改代码。 工作表1工作表3工作表4工作表5具有切片机。

#Set the file path (can be a network location) $filePath = "C:\test" $excelObj = New-Object -ComObject Excel.Application $excelObj.Visible = $true #Open the workbook $workBook = $excelObj.Workbooks.Open($filePath) #Focus on the top row of the "Data" worksheet $workSheet = $workBook.Sheets.Item("PowerPivot") $workSheet.Select() $workSheet.PowerPivotWindow foreach ($file in $excelfiles) { $workSheet = $workBook.Sheets.Item("Home") $workSheet.Select() $workBook.RefreshAll() $excelworkbook.Close() $workSheet = $workBook.Sheets.Item("Data") $workSheet.Select() #Refresh all data in this workbook $workBook.RefreshAll() $workBook.Save() $excelworkbook.Close() } #Uncomment this line if you want Excel to close on its own $excelObj.Quit() 

作为一个build议,不要在脚本中运行它,请调整您的数据模型以具有可以使用的属性。 (像月最后一次 – 或者你想调用它,但它会提供你的上个月切片)你只需要依靠你的$ workBook.RefreshAll()来更新每个工作表。 作为上个月或上个月将取决于您的数据和刷新更新。

然后,您可以将此上一个月切片机链接到您需要上一个月的表格。