CMD/BAT - Добавить надстройку в Microsoft Excel

Аватара пользователя
c4uran

Re: CMD/BAT - Добавить надстройку в Microsoft Excel

Сообщение c4uran »

c4uran, такую реализацию никак нельзя сделать на пакетных файлах — там нет поддержки Automation. Кроме WSH, аналогичное также можно проделать посредством PowerShell.



P.S. Исправьте заголовок темы на более соответствующее содержанию, наподобие «Добавить надстройку в Microsoft Excel», путём редактирования первого сообщения темы.
Аватара пользователя
c4uran

Re: CMD/BAT - Добавить надстройку в Microsoft Excel

Сообщение c4uran »

c4uran, примерно так:



Скрытый текст

[spoiler]Код:
[/spoiler]

Код: Выделить всё

$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
}
Аватара пользователя
c4uran

Re: CMD/BAT - Добавить надстройку в Microsoft Excel

Сообщение c4uran »

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()

где взять хелп по этим вызовам?
Аватара пользователя
Iska

Re: CMD/BAT - Добавить надстройку в Microsoft Excel

Сообщение Iska »

Цитата c4uran:



но могли бы уточнить почему используете запрос [System.IO.File]::Copy это вроде вызов из .net
CMD/BAT - Добавить надстройку в Microsoft Excel




Используется статический метод Copy класса System.IO.File. Почему так, а не командлет PowerShell Copy-Item? Мне так проще.




Цитата c4uran:



где можно изучить запросы приложений например офиса
CMD/BAT - Добавить надстройку в Microsoft Excel




Win-R, excel.exe, Enter, Alt-F11, F1:



Скрытый текст

[spoiler]Изображение[/spoiler]




Надеюсь, что в Вашей версии Microsoft Office осталось так же. Ну, или в MSDN.
Ответить

Вернуться в «Скриптовые языки администрирования Windows»