2015-12-08 3 views
0

Я импортирую значения (value1, Value2, Value3 и Value4) 4 значения из файла CSV. Затем я открываю файл Excel, у которого уже есть много других параметров. Теперь я пытаюсь найти совпадающее значение value1 в столбце7 и найти номер строки. Затем я заполняю остальные 3 значения до clūmn 12,13 и 14.Как найти номер строки значения

У меня возникла проблема с поиском номера строки.

Правильный ли код ниже?

$ImportedValues = Import-Csv "c:\123.csv" 

$ExcelSourceFile = "$env:userprofile\Desktop\fileexcel.xlxs" 
$SheetName = "Sheet1" 
$ExcelSourceObj = New-Object -ComObject Excel.Application 
$ExcelSourceObj.Visible = $true 
$ExcelWorkbook = $ExcelSourceObj.Workbooks.Open($ExcelSourceFile, 2, $True) 
$ExcelWorkSheet = $ExcelWorkbook.Worksheets.Item($SheetName) 

foreach ($ImportedValue in $ImportedValues) { 
    $value1 = $ImportedValue | select -ExpandProperty Value1 
    $value2 = $ImportedValue | select -ExpandProperty Value2 
    $value3 = $ImportedValue | select -ExpandProperty Value3 
    $value4 = $ImportedValue | select -ExpandProperty Value4 

    $i = $ExcelWorkSheet.Column(7).find($value1).row 
    $ExcelWorkSheet.Cells.Item($i,12) = $value2 
    $ExcelWorkSheet.Cells.Item($i,13) = $value3 
    $ExcelWorkSheet.Cells.Item($i,14) = $value4 
} 
+2

_Is ниже кода справа _ .. это получить ли вам результаты, которые вы хотите? Я вижу некоторые сокращения с назначением ваших значений. Что такое '$ value1', например – Matt

+2

' .Column (7) 'должно быть [' .Columns (7) '] (https://msdn.microsoft.com/EN-US/library/office/ff197266.aspx) (множественное число) –

+0

Значение $ может быть именем человека. Я нахожу имя человека в 7-м столбце и пытаюсь найти номер строки и сохранить его в переменной $ i. Так что может быть кодом для получения номера строки? – Chand

ответ

1

Это должно работать: $ ExcelWorkSheet.Columns.item (7) .find ($ value1) .row

+0

Это сработало для меня ... – Chand

Смежные вопросы