i'am stuck coding with below requirements.код powershell для сравнения двух файлов xls
У меня есть два файла excel (xls) (старый и новый список пользователей). В каждом файле есть 4 поля «Userid», «UserName», «Costcenter», Approving Manager ». Теперь мне нужно проверить, существует ли каждый пользовательский список из нового списка пользователей в списке старых пользователей. Если это так, мне нужно скопировать/замените значения «Costcenter» и «Утверждающий менеджер» в списке «Новый пользователь» со значениями из тех же столбцов из списка «Старый пользователь». Если это условие терпит неудачу, запустите всю строку для «userid» в списке новых пользователей, для которой нет соответствующей записи соответствия в списке «Старый пользователь» и, наконец, не последняя, но в последнюю очередь нам нужно сохранить новый список пользователей. Есть около 2000+ userid
ниже, я начал кодирование, чтобы получить список Userid из нового списка пользователей в массив. будет делать то же самое для старого списка пользователей. Оттуда, как мне перейти, изменив новый список пользователей, как я объяснил выше?
$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. Обработка CSV в Powershell - это легкий ветерок, посмотрите на «Import-CSV». – vonPryz
Вы все равно можете использовать объект COM Excel для сохранения файлов в формате CSV. –