创建Powershell脚本以循环遍历Excel文件并创建文件夹

时间:2016-09-15 08:30:20

标签: excel powershell

我是Powerscript的新手,正在编写一个解决方案来遍历excel文件,并为文件中的每一行创建一个文件夹。

目前我有以下内容:

$objExcel = new-object -comobject excel.application 

$objExcel.Visible = $True 

$ExcelFilesLocation = “D:\Users\”

$UserWorkBook = $objExcel.Workbooks.Open($ExcelFilesLocation + “ProjectCodes.xlsx”) 

$UserWorksheet = $UserWorkBook.Worksheets.Item(1)

$intRow = 2

Do {

 $Projectcode = $UserWorksheet.Cells.Item($intRow, 1).Value()

 $pos = $userLogOnEmail.IndexOf(“@”)

           $intRow++

           } While ($UserWorksheet.Cells.Item($intRow,1).Value() -ne $null)

$objExcel.Quit()

$a = Release-Ref($UserWorksheet)

$a = Release-Ref($UserWorkBook) 

$a = Release-Ref($objExcel)

我们的想法是遍历每一行的项目代码列。然后创建一个以项目代码命名的文件夹。

2 个答案:

答案 0 :(得分:0)

要创建新目录,请使用New-Item

例如,假设$Projectcode是包含有效路径的字符串:

New-Item -Path $Projectcode -Type Directory

答案 1 :(得分:0)

花了几个小时与PowerShell争论Excel COM对象,我的建议是放弃! Office COM对象令人困惑,笨拙且缓慢。

使用更好的方法替换用于在PowerShell中访问Excel的技术。例如,此模块:https://github.com/dfinke/ImportExcel。如果您正在使用PS 5,则可以使用main.js

除了更容易使用和更快速之外,它不需要安装Excel,使您的最终脚本更具可移植性。

顺便说一句,你不能通过这个模块获得完整的Excel功能,但是因为你似乎只是阅读单元格,你应该没问题。

或者,将您的Excel文件另存为CSV并改为使用Install-Module ImportExcel -Scope CurrentUser