批量自动行高列宽
$files = Get-ChildItem "D:\work\guoxin\test"foreach($path in $files){    $excel = New-Object -ComObject excel.application    $excel.visible = $false    $wb = $excel.Workbooks.open($path.fullname)    foreach ($i in 1..8){        $sht = $wb.Worksheets.Item($i)        $range = $sht.UsedRange        $range.EntireColumn.AutoFit() | Out-Null    }    $wb.save()    $wb.close()    $excel.quit()}
- 第一个循环是遍历文件夹中的所有excel文件
 - 第二个循环是遍历excel文件中的子表,总共有8个表
 - 每循环一次就退出一次excel,当excel处于多个进程的时候会出现,RPC不可用的报错
 
批量调整两位小数
$files = Get-ChildItem "D:\work\huang\save"foreach($path in $files) {    $excel = New-Object -ComObject excel.application    $excel.visible = $true    $wb = $excel.Workbooks.open($path.fullname)    $ws = $wb.WorkSheets.item(1)    $ws.range("J:K").NumberFormat = "#,##0.00"    $wb.save()    $wb.close()    $excel.quit()}
批量替换删除
$files = Get-ChildItem "D:\chen\tocustomer\process"foreach($path in $files) {    $excel = New-Object -ComObject excel.application    $excel.visible = $true    $wb = $excel.Workbooks.open($path.fullname)    $ws = $wb.WorkSheets.item(1)    $all = $ws.UsedRange    $all.replace("#N/A", "-")    $ws.range("I:M").NumberFormat = "#,##0.00"    $ws.range("O:P").NumberFormat = "#,##0.00"    $ws.range("R:S").NumberFormat = "#,##0.00"    $ws.range("U:Y").NumberFormat = "#,##0.00"    $ws.Columns(1).EntireColumn.Delete()    $wb.save()    $wb.close()    $excel.quit()}
根据某列内容分割成多个文件
$objExcel = New-Object -ComObject excel.application$objExcel.visible = $true$path = "D:\chen\my.xlsx"$workbook = $objExcel.workbooks.open($path)$ws=$workbook.WorkSheets.item(1)$alpha_list = @()$range = $ws.UsedRange$max_num = $range.Rows.Countforeach($i in 2..$max_num) {    $alpha_list += $ws.cells.item($i, 1).value2}$alpha_list = $alpha_list | sort-object -uniqueecho $alpha_listforeach ($i in $alpha_list) {    $range.EntireColumn.AutoFilter()    $range.AutoFilter(1, $i)    $fil_range = $ws.UsedRange    $fil_range.copy()    $wb_split = $objExcel.workbooks.add()    $wb_split.activate()    $ws_split = $wb_split.WorkSheets.item(1)    $ws_split.Range("A1").PasteSpecial(-4104) | out-null    $save_path = "D:\chen\za\split\MDC{0}.xlsx" -f $i    $wb_split.saveas($save_path)    $wb_split.close()    $ws.activate()}$objExcel.Quit()
 
统计工作簿中所有工作表的行数
XML操作