Как вставить таблицу Excel в PowerPoint в PowerShell без использования копирования / вставки - PullRequest
0 голосов
/ 21 февраля 2020

Я хочу, чтобы моя функция была совместима с многопоточностью, поэтому я стараюсь избегать копирования и вставки.

Пока у меня есть:

function Excel2PPT{


param ($xslx, $targetsheet, $targetrange, $pptx, $targetslide, $npath, $posL, $posT, $posW, $posH)




$Excel = New-Object -ComObject Excel.Application
$workbook = $Excel.workbooks.open($xslx)
$Excel.Visible= $true
$worksheet = $workbook.worksheets.Item($targetsheet)


$range = $worksheet.Range($targetrange)



write-host $range.textrange.text

$objPPT = New-Object -ComObject Powerpoint.Application
$objPPT.Visible ='Msotrue'
$pp1 = $objPPT.Presentations.open($pptx)
$slide = $pp1.Slides.Item($targetslide)



$rows = $range.rows.count
$columns = $Range.columns.count

write-output $pp1.Slides.Item($targetslide).shapes.count


write-output "Rows: " $rows

write-output "Columns: " $Columns

foreach ($cell in $range){

write-output "celldump: " $cell.row $cell.column $cell.text

}

Здесь, кажется, ничего из того, что я пытаюсь сделать, не работает

$TABLE =$slide.shapes.AddTable($range)

$table = $slide.shapes.item($slide.shapes.count)


write-output "tablerows" $table.rows.count

write-output "Tablecolumns" $table.columns.count





$pp1.Saveas($npath)



$Excel.close
$pp1.Close()
$Excel.Quit()
$objPPT.quit()
Stop-Process -name POWERPNT -Force
Stop-Process -name excel -Force

}

Даже после добавления таблицы я пытался использовать hastable on эта форма, и он возвращает ложь, потому что форма, которую я буквально вставил в виде таблицы. Как можно сослаться не только на вставленную таблицу, но и указать c ячейки, чтобы можно было вводить их значения.

Или есть лучший способ передачи данных Excel в таблицу PowerPoint, совместимую с многопоточность?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...