Показать полную графическую версию : Добавить надстройку в Microsoft Excel
Iska, поправил, а если не сложно можете показать реализацию на powershell?
c4uran, примерно так:
$sSourceFile = Join-Path -Path $PSScriptRoot -ChildPath "mc.xlam"
if(Test-Path -Path $sSourceFile -PathType Leaf) {
$sDestPath = "$([Environment]::GetFolderPath("ApplicationData"))\Microsoft\AddIns"
$sDestFile = Join-Path -Path $sDestPath -ChildPath "mc.xlam"
if(Test-Path -Path $sDestPath -PathType Container) {
[System.IO.File]::Copy($sSourceFile, $sDestFile, $true)
$oExcel = New-Object -ComObject 'Excel.Application'
$oExcel.Workbooks.Add() | Out-Null
$oExcel.AddIns.Add($sDestFile).Installed = $true
$oExcel.Quit()
} else {
Write-Host "Can't find destination folder [$sDestPath]." -ForegroundColor Red
}
} else {
Write-Host "Can't find source file [$sSourceFile]." -ForegroundColor Red
}
Iska, Вы волшебник! спасибо большое! Хоть я и вроде понимаю что написано в пс скрипте но могли бы уточнить почему используете запрос [System.IO.File]::Copy это вроде вызов из .net
и если не сложно можете подсказать где можно изучить запросы приложений например офиса т.к этот абзац для меня загадка:
$oExcel = New-Object -ComObject 'Excel.Application'
$oExcel.Workbooks.Add() | Out-Null
$oExcel.AddIns.Add($sDestFile).Installed = $true
$oExcel.Quit()
где взять хелп по этим вызовам?
но могли бы уточнить почему используете запрос [System.IO.File]::Copy это вроде вызов из .net »
Используется статический метод Copy класса System.IO.File. Почему так, а не командлет PowerShell Copy-Item? Мне так проще.
где можно изучить запросы приложений например офиса »
Win-R, excel.exe, Enter, Alt-F11, F1:
https://i.imgur.com/fiADBTK.png
Надеюсь, что в Вашей версии Microsoft Office осталось так же. Ну, или в MSDN.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.