2013-09-02 2 views
4

저는보고 작업을 자동화하기 위해 스크립트를 실행하고 있습니다.Excel에서 Word로 차트를 복사하는 방법은 무엇입니까?

우리는 경고 시스템의 데이터를 가지고 있으며이를 차트가있는 Excel 시트로 복사합니다.

그러면 차트를 Excel 시트에서 워드 문서로 복사합니다.

매월 ~ 50 대의 서버를 사용하고 있다는 사실을 생각할 때까지는 그렇게 어렵지 않습니다.

Excel 스프레드 시트에 데이터를 덤프하고 차트를 업데이트하고 차트를 업데이트하는 작업을 자동화 할 수있었습니다. 차트를 선택하고 복사

$xl = new-object -comobject excel.application 
$xl.Visible = $true 

$wb = $xl.workbooks.open("C:\blah\Servername_graph.xlsx") 
$ws = $wb.worksheets.item(1) 
$charts = $ws.ChartObjects() 
$chart = $charts.Item(1) 
$a = $chart.copy 

$wd = new-object -comobject Word.application 
$wd.visible = $true 
$path = "C:\blah\doc.docx" 
$doc = $wd.documents.open($path) 

을 당신은 내가 엑셀 ​​시트를 개방하고있는 코드에서 볼 수 있듯이 : 나는 복사 붙어 및 Excel에서 Word로 차트를 붙여지고 있어요. 문서를 여는 중이지만 붙여 넣을 방법은 확실하지 않습니다. 이처럼

답변

4

:

cht1.CopyPicture Appearance:=xlScreen, Format:=xlPicture 

With tbl.cell(4, 1).Range 
     .Paste 'Paste Graph 
     .InlineShapes(1).ScaleWidth = 100 
End With 

tbl.cell(4, 1).Range :

$default = [Type]::Missing 
$wd.Selection.PasteSpecial($default, $default, $default, $default, 9, $default, $default) 
+0

와우. 아주 간단합니다. 감사. 어떤 경우에는 도표로 붙여 넣을 수있는 방법이 있습니다. Excel로 연결되는 링크가있는 차트가 아닙니다. – DamianB

+0

그래도 차트로 붙여 넣을 수 있습니다. – DamianB

+0

미안하지만, 나는 논쟁의 명령을 엉망으로 만들었습니다. 'DataType'은 제 3 인수가 아니라 제 5 인수입니다. –

0

당신은이 같은 것을 사용할 수 있습니다 : 그림이 PasteSpecial 방법을 사용으로

$wd.Selection.Paste() 

차트를 붙여 넣으려면 단어의 표 또는 셀에 대한 참조입니다.

이 방법의 장점은 사용하지 않는 것입니다. .Select

관련 문제