i'am卡住了以下要求的編碼。用於比較兩個xls文件的powershell代碼
我有兩個excel(xls)文件(舊的和新的用戶列表)。在每個文件中,有4個字段「Userid」,「UserName」,「Costcenter」,Approving Manager「。現在,我需要檢查舊用戶列表中是否存在新用戶列表中的每個Userid。如果需要,用新用戶列表中的「Costcenter」和「Approving Manager」的值替換舊用戶列表中相同列的值。如果這個條件失敗,那麼高亮顯示新用戶列表中的「用戶標識符」的整個行,舊用戶列表中沒有相應的匹配記錄,最後不會保留最後,但我們必須保存新用戶列表。有大約2000+用戶ID的
下面,我開始編碼,以獲取新用戶列表中的用戶列表到數組中。將對舊用戶列表執行相同操作。從那裏我如何通過修改像我上面解釋的新用戶列表?
$objExcel = new-object -comobject excel.application
$UserWorkBook = $objExcel.Workbooks.Open("O:\UserCert\New_Users.xls")
$UserWorksheet = $UserWorkBook.Worksheets.Item(1)
$OldUsers = @()
$intRow = 2 #starting from 2 since i have to exclude the header
do {
$OldUsers = $UserWorksheet.Cells.Item($intRow, 1).Value()
$intRow++
} while ($UserWorksheet.Cells.Item($intRow,1).Value() -ne $null)
任何幫助,不勝感激...
而不是搞亂Excel COM接口,我會保存CSV格式的文件。在Powershell中處理CSV是一件輕而易舉的事,看看'Import-CSV'。 – vonPryz
儘管如此,仍然可以使用Excel COM對象將文件保存爲CSV格式。 –