Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Название темы: PowerShell и Excel
Показать сообщение отдельно

Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата ferget:
он останется висеть в памяти »
тогда так:
Код: Выделить весь код
$string = "Иванов"
$file = "D:\1.xlsx"

$ciBK = [System.Threading.Thread]::CurrentThread.CurrentCulture
$ciUS = [System.Globalization.CultureInfo]'en-US'
[System.Threading.Thread]::CurrentThread.CurrentCulture = $ciUS

$xl = New-Object -COM Excel.Application
$xl.Visible = $False

$bk = $xl.Workbooks.PSBase.GetType().InvokeMember('Open',[Reflection.BindingFlags]::InvokeMethod,$null,$xl.Workbooks,"$file",$ci)
$ws = $bk.Worksheets.Item(1)
$rn = $ws.Range("A1").EntireColumn

$sc = $bk.PSBase.GetType().InvokeMember('Find',[Reflection.BindingFlags]::InvokeMethod,$null,$rn,$string,$ci)

$v0= $ws.Cells.Item($sc.Row,1).FormulaLocal
$v1= $ws.Cells.Item($sc.Row,3).FormulaLocal
$v2= $ws.Cells.Item($sc.Row,5).FormulaLocal

Write-Host "Имя: " $v0   "Данное1: " $v1 "Данное2: " $v2

$bk.PSBase.GetType().InvokeMember('Close',[Reflection.BindingFlags]::InvokeMethod,$null,$bk,"",$ci)
$xl.Quit()

[System.Threading.Thread]::CurrentThread.CurrentCulture = $ciBK

[System.Runtime.Interopservices.Marshal]::ReleaseComObject($xl)
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($sc)
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($rn)
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($ws)
Ссылки по теме:

How Can I Use Windows PowerShell to Automate Microsoft Excel?
BUG: "Old format or invalid type library" error when automating Excel
Getting Rid of a COM Object (Once and For All)
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:08, 06-05-2011 | #5

Название темы: PowerShell и Excel