이렇게하면 어떻게하는지 알게되면 매우 간단합니다. DDE 대신 OLE 임베딩을 사용했습니다. 포함 기능을 사용하면 Excel 통합 문서가 Unix 타르 파일이나 Windows zip 파일과 비슷한 형태로 바뀝니다. 하나의 파일에 다른 파일이 들어 있습니다.
먼저 XML 텍스트를 .sqlplan
확장자와 함께 임시 파일에 씁니다. 둘째,이 코드를 호출
$object = $ws.OLEObjects().Add(
[System.Type]::missing, # ClassType
$path, # FileName
$false, # Link
$false, # DisplayAsIcon
[System.Type]::missing, # IconFileName
[System.Type]::missing, # IconIndex
[System.Type]::missing, # IconLabel
[System.Type]::missing, # Left
[System.Type]::missing, # Width
[System.Type]::missing, # Height
[System.Type]::missing # Top
)
경우 임시 파일을 $path
점. 셋째, 임시 파일을 삭제합니다. "Link"매개 변수가 $false
이기 때문에 XML 파일의 복사본이 이제 통합 문서의 일부가됩니다.
위의 설명과 함께 Martin Smith가 제안한 것일 수 있습니다. .sqlplan
파일이 통합 파일 외부에 일반 파일로 저장된다고 말합니다. 또한 이것은 스프레드 시트에 임베드하고 싶은 파일 종류와 함께 사용할 수 있습니다.
생성 시점에 크기와 위치를 설정하지 않은 이유는 그 시점에서 사각형을 만들 수 없기 때문입니다. 당신은`.sqlplan` 확장자를 가진 별도의 파일로 실행 계획을 작성하는 경우
$object.ShapeRange.LockAspectRatio = $false
$cell = $range.Cells($cellRow, $cellColumn)
$object.Left = $cell.Left
$object.Width = $cell.Width
$object.Height = $cell.Height
$object.Top = $cell.Top
후 그냥 열어야합니다 파일에 하이퍼 링크 : 나는 그것을에서의 셀을 채우는 "링크"를 만들기 위해,이에 위의 코드를 따라 기본 응용 프로그램에서 자동으로 실행됩니다. –
Excel 통합 문서를 자체 포함 된 상태로 유지하고 싶지만, 반면에 귀하의 접근 방식은 수행 방법을 알고 있습니다. –