如何使用powershell替换excel中的文本

如何使用powershell替换excel中的文本,excel,replace,Excel,Replace,正在编写一个脚本来替换excel文件中的内容 我已经编写了以下脚本,但是我似乎无法在没有用户输入的情况下处理它。这是为了自动化流程,因此不需要用户输入 地区 #launch excel $excel = new-object -comobject excel.application #call file $FilePath = "C:\AESOP\emp.xlsx" $workbook = $excel.Workbooks.Open($FilePath) $WorkSheet = $

正在编写一个脚本来替换excel文件中的内容

我已经编写了以下脚本,但是我似乎无法在没有用户输入的情况下处理它。这是为了自动化流程,因此不需要用户输入

地区

#launch excel   
$excel = new-object -comobject excel.application

#call file
$FilePath = "C:\AESOP\emp.xlsx"
$workbook = $excel.Workbooks.Open($FilePath)


$WorkSheet = $Workbook.Sheets.Item(1)
$range = $worksheet.range("D:D").entirecolumn 
$range.Columns.Replace("A","Y") 
$range.Columns.Replace("I","N") 
$workbook.ActiveSheet.Cells.Item(1,4) = 'Active'


$WorkSheet = $Workbook.Sheets.Item(1)
$range = $worksheet.range("F:F").entirecolumn 

$range.Columns.Replace("ACCOUNT CLERK I","Secretarial Staff")
$range.Columns.Replace("ACCOUNT CLERK II","Secretarial Staff")
$range.Columns.Replace("ASSISTANT COACH - CLASSIFIED","Other")
$range.Columns.Replace("ASSISTANT COACH - PARA","Other")
$range.Columns.Replace("ASSISTANT COACH-XDUTY","Other")
$range.Columns.Replace("BUS AIDE - EXCEPTIONAL CHILD","Transportation Staff")
$range.Columns.Replace("BUS DRIVER","Transportation Staff")
$range.Columns.Replace("BUS DRIVER TRAINING ASSISTANT","Transportation Staff")
$range.Columns.Replace("BUS DRIVER TRNING COORDINATOR","Transportation Staff")
$range.Columns.Replace("BUS MONITOR","Transportation Staff")
$range.Columns.Replace("CERTIFIED SOCIAL WORKER","Teacher/Professional Staff")
$range.Columns.Replace("CERTIFIED STAFF","Teacher/Professional Staff")
$range.Columns.Replace("CHIEF INFORMATION OFFICER","Technology Staff")
$range.Columns.Replace("CHILD DEVELOP CENTER ASST SUPR","Other")
$range.Columns.Replace("CHILD DEVELOPMENT CENTER SUPRV","Other")
$range.Columns.Replace("COMPUTER ENGINEER","Technology Staff")
$range.Columns.Replace("COMPUTER LAB TECHNICIAN","Technology Staff")
$range.Columns.Replace("COOK/BAKER","Cafeteria Staff")
$range.Columns.Replace("COORDINATOR I","Other")
$range.Columns.Replace("CUSTODIAL SUPERVISOR","Facilities Staff")
$range.Columns.Replace("CUSTODIAN","Facilities Staff")
$range.Columns.Replace("DAYCARE ASST - HRLY","Secretarial Staff")
$range.Columns.Replace("DEAN OF STUDENTS","Teacher/Professional Staff")
$range.Columns.Replace("DELIVERY DRIVER","Transportation Staff")
$range.Columns.Replace("DIR OF DISTRIC PERSONNEL","Teacher/Professional Staff")
$range.Columns.Replace("DIRECTOR III","Other")




#save as csv
$SavePath = "C:\AESOP\emp2.xlsx" 
$workbook.saveas($SavePath)
#$workbook.close


$excel.quit() 
Write-Host "Closed Excel"
Get-Process excel | Stop-Process -Force

endregion

$工作簿。关闭
提示您保存更改?我会收到替换的提示。“我们找不到任何可替换的内容。单击“选项”可查看更多搜索“潜在的次要问题”的方法。以前两行
Replace
为例。替换
“会计职员I”
“会计职员II”
更改为
“秘书工作人员
。您可能希望为指定更多参数。我是powershell的新手,因此我不确定如何将其替换为精确匹配的参数,我需要使用哪些参数?我不确定我正在使用的代码是否是最简单的,这正是我迄今为止能够使用的。猜测您想要
1
,它对应于。是否
$workbook.close
提示您保存更改?我会收到替换的提示。“我们找不到任何可替换的内容。单击“选项”可查看更多搜索“潜在的次要问题”的方法。以前两行
Replace
为例。替换
“会计职员I”
“会计职员II”
更改为
“秘书工作人员
。您可能希望为指定更多参数。我是powershell的新手,因此我不确定如何将其替换为精确匹配的参数,我需要使用哪些参数?我不确定我正在使用的代码是否是最简单的,这正是我迄今为止能够使用的。猜测您想要的
1
,对应于。
#launch excel   
$excel = new-object -comobject excel.application

#call file
$FilePath = "C:\AESOP\emp.xlsx"
$workbook = $excel.Workbooks.Open($FilePath)


$WorkSheet = $Workbook.Sheets.Item(1)
$range = $worksheet.range("D:D").entirecolumn 
$range.Columns.Replace("A","Y") 
$range.Columns.Replace("I","N") 
$workbook.ActiveSheet.Cells.Item(1,4) = 'Active'


$WorkSheet = $Workbook.Sheets.Item(1)
$range = $worksheet.range("F:F").entirecolumn 

$range.Columns.Replace("ACCOUNT CLERK I","Secretarial Staff")
$range.Columns.Replace("ACCOUNT CLERK II","Secretarial Staff")
$range.Columns.Replace("ASSISTANT COACH - CLASSIFIED","Other")
$range.Columns.Replace("ASSISTANT COACH - PARA","Other")
$range.Columns.Replace("ASSISTANT COACH-XDUTY","Other")
$range.Columns.Replace("BUS AIDE - EXCEPTIONAL CHILD","Transportation Staff")
$range.Columns.Replace("BUS DRIVER","Transportation Staff")
$range.Columns.Replace("BUS DRIVER TRAINING ASSISTANT","Transportation Staff")
$range.Columns.Replace("BUS DRIVER TRNING COORDINATOR","Transportation Staff")
$range.Columns.Replace("BUS MONITOR","Transportation Staff")
$range.Columns.Replace("CERTIFIED SOCIAL WORKER","Teacher/Professional Staff")
$range.Columns.Replace("CERTIFIED STAFF","Teacher/Professional Staff")
$range.Columns.Replace("CHIEF INFORMATION OFFICER","Technology Staff")
$range.Columns.Replace("CHILD DEVELOP CENTER ASST SUPR","Other")
$range.Columns.Replace("CHILD DEVELOPMENT CENTER SUPRV","Other")
$range.Columns.Replace("COMPUTER ENGINEER","Technology Staff")
$range.Columns.Replace("COMPUTER LAB TECHNICIAN","Technology Staff")
$range.Columns.Replace("COOK/BAKER","Cafeteria Staff")
$range.Columns.Replace("COORDINATOR I","Other")
$range.Columns.Replace("CUSTODIAL SUPERVISOR","Facilities Staff")
$range.Columns.Replace("CUSTODIAN","Facilities Staff")
$range.Columns.Replace("DAYCARE ASST - HRLY","Secretarial Staff")
$range.Columns.Replace("DEAN OF STUDENTS","Teacher/Professional Staff")
$range.Columns.Replace("DELIVERY DRIVER","Transportation Staff")
$range.Columns.Replace("DIR OF DISTRIC PERSONNEL","Teacher/Professional Staff")
$range.Columns.Replace("DIRECTOR III","Other")




#save as csv
$SavePath = "C:\AESOP\emp2.xlsx" 
$workbook.saveas($SavePath)
#$workbook.close


$excel.quit() 
Write-Host "Closed Excel"
Get-Process excel | Stop-Process -Force