Код Powershell для вставки листа Excel в файл Excel

#excel #vba #powershell #embed #createoleobject

#excel #vba #powershell #Внедрить #createoleobject

Вопрос:

Можно ли встроить объект в файл Excel?

Я пытался использовать "$sheet.OLEObjects().Add() , но не смог получить правильные параметры для встраивания объекта. Мне интересно, возможно ли это сделать с помощью powershell.

Буду признателен за любую помощь по этому вопросу.

Редактировать : 21/12/2020

Вот код, на который я ссылался :

 $src = "C:TempTempsrc.xlsm"
$dst="C:TempTempdst.xlsx"

$excel=New-Object -ComObject Excel.Application
$excel.visible = $false
$excel.DisplayAlerts=$false
$book = $excel.workbooks.Open($src, $null, $false)

$sheet = $excel.worksheets.item("sheetname")
[void]$sheet.Activate()

$sheet.OLEObjects().Add($missing, $dst, $false, $true,$missing, 1, "Attachment', $missing, $missing, $missing)

[void] $book.save()
[void]$book.Close()
[void]$book.Quit()
 

Приведенный выше код выдает ошибку «Не удалось получить свойство Add класса OLEObjects.

Также попробовал приведенное ниже, которое фактически прикрепляет пустой лист к woorkbook, но не к целевому файлу, а также выдает то же сообщение об ошибке, что и выше.

$sheet.OLEObjects().Add(‘excel.sheet’, $отсутствует, $ false, $ true, $ dst, 1, «Вложение», $ отсутствует, $ отсутствует, $ отсутствует)

Комментарии:

1. С какими параметрами у вас возникли проблемы? Вот ссылка на документацию по методу: docs.microsoft.com/en-us/office/vba/api/excel.oleobjects.add

2. Пожалуйста, добавьте больше кода, возможно, заявление об ошибке, чтобы мы лучше понимали, с чем мы здесь имеем дело.

3. Обновлено сообщение выше

Ответ №1:

Получил его с помощью приведенных ниже двух дополнений к строке кода :

$ OLEObjects = $sheet.OLEObjects($ отсутствует)

$ OLEObjects.Добавить($missing, $ dst, $false, $ true, «WINWORD.EXE «, «LabelName», $отсутствует, $ отсутствует, $отсутствует)