[Powershell]Plakken tabel uit Excel in Word met Autosize

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

  • Pater
  • Registratie: Oktober 2001
  • Laatst online: 20:54

Pater

Terry Tate

Topicstarter
Mijn vraag heeft te maken met een powershell script wat ik aan het schrijven ben. Wat ik wil bereiken is dat er een selectie gemaakt wordt van een Excel spreadsheet en dat deze selectie als een Excel embedded document wordt ingeplakt. Het enige probleem is nu dat de selectie te breed is voor het Word document. Normaliter zou je op de tabel klikken met de rechtermuisknop en kiezen voor Autofit to Window. Maar hoe doe je dat in Powershell?

Dit is momenteel mijn script:

$destination = 'C:\Users\Pater\Downloads\archive2.docx'
$word = new-object -comobject Word.application
$word.visible = $true

$doc1 = $word.documents.open($destination)
$bookmark1 = $doc1.Bookmarks.Item("FacilitySheet")

$xl = New-Object -comobject Excel.Application
$xl.Visible = $true
$xl.DisplayAlerts = $False
$wb = $xl.Workbooks.Open("C:\Users\Pater\Downloads\spreadsheet.xlsx")
$ws = $wb.ActiveSheet
$Range1 = $ws.UsedRange.Cells
$RowCount = $Range1.rows.count
$CopyRange = $ws.Range("A1:O$RowCount").Copy()

$bookmark1.Range.Paste()

If we are all God's children, what makes Jesus so special?

Battle.net tag

Alle reacties


Acties:
  • 0 Henk 'm!

  • dixet
  • Registratie: Februari 2010
  • Laatst online: 21:24
Na het plakken heb je geen referentie naar het geplakte object. Behalve dan dat je weet dat je Range is uitgebreid met dat object.
Wanneer je weet dat dit het enige embedded object in je document (of range) is zou je die kunnen vinden door $bookmark.Range.InlineShapes(1) op te halen. Dan heb je een referentie naar het object waarvan de de eigenschappen kan ophalen.

Als er meerdere embedded objecten zijn wordt het lastig de juiste te vinden.

Acties:
  • 0 Henk 'm!

  • g0tanks
  • Registratie: Oktober 2008
  • Laatst online: 00:01

g0tanks

Moderator CSA
Kan je niet in Excel al de kolommen kleiner maken?

Ultrawide gaming setup: AMD Ryzen 7 2700X | NVIDIA GeForce RTX 2080 | Dell Alienware AW3418DW


Acties:
  • 0 Henk 'm!

  • Pater
  • Registratie: Oktober 2001
  • Laatst online: 20:54

Pater

Terry Tate

Topicstarter
Het excel bestand wordt genereerd door het systeem, wat wordt opgehaald door mijn robot. Ik zou nog een powershell script kunnen schrijven om het excel bestand te verkleinen, maar voor nu lijkt me dit een mooiere oplossing. Het is inderdaad het enige embedded bestand in het Word document.

Hoe kan ik daarna de tabel laten autofit-en?

If we are all God's children, what makes Jesus so special?

Battle.net tag


Acties:
  • +1 Henk 'm!

  • dixet
  • Registratie: Februari 2010
  • Laatst online: 21:24
Pater schreef op dinsdag 12 januari 2021 @ 15:29:
Hoe kan ik daarna de tabel laten autofit-en?
Google is your friend :)

.Tables(1).AutoFitBehavior 2 'wdAutoFitWindow

Tip om zelf te zoeken: je gebruikt nu Powershell, maar eigenlijk "praat" je tegen het objectenmodel van Excel of Word. Meestel wordt dat gebruikt in VBA. Dus googlen naar je wens in combinatie met de term "VBA" zal je vaak verder helpen. Moet je alleen de VBA code vertalen naar Powershell

Acties:
  • 0 Henk 'm!

  • Pater
  • Registratie: Oktober 2001
  • Laatst online: 20:54

Pater

Terry Tate

Topicstarter
Hi dixet, thanks! Ik was die ook al tegengekomen. Ik heb daar ook mee zitten spelen, maar het lukt me niet. Het is meer mijn onbekendheid hoe ik VBA code naar Powershell kan vertalen. Als je daar nog tips over hebt, graag.

If we are all God's children, what makes Jesus so special?

Battle.net tag

Pagina: 1