c# Excel 그림 스티커 오류, sheet paste

최근 Word 파일에서 여러 개의 그림을 추출하여 Excel에 붙이려고 할 때, 항상 붙이는 데 성공할 수 없습니다. 실제적으로 "Microsoft Office Excel cannot paste the data"가 나타납니다.를 참조하십시오.
c# 및 VB.net 현상은 모두 같지 않습니다. c#은 처음에 복사할 수 없지만 프로그램을 닫지 않고 명령을 다시 실행하면 일부 그림을 복사할 수 있습니다.그러나 여러 번 복사를 실행하면 둘 다 도중에 오류가 발생하거나 같은 내용을 복사하는 것은 이해하기 어렵다.
처음에 sheet를 썼어요.Paste(Missing.Value);
오류가 멈추면 실제 Excel을 Ctrl+V하면 "Microsoft Office Excel cannot paste the data."가 나타납니다.
이때 마우스 오른쪽 단추로 PasteSpecial을 눌러 Word 형식의 Picture를 선택하고 붙여넣는 것은 정상이다.
따라서sheet를 사용합니다.PasteSpecial 방법을 사용하면 목적을 달성할 수 있습니다.
Word 호출:

  
  
  
  
  1. foreach (Word.InlineShape myinlineshape in oWordDoc.InlineShapes) 
  2.     if (myinlineshape.Type == Word.WdInlineShapeType.wdInlineShapeLinkedPicture || myinlineshape.Type == Word.WdInlineShapeType.wdInlineShapePicture) 
  3.     { 
  4.         myinlineshape.Select(); 
  5.         oWordApp.Selection.CopyAsPicture(); 
  6.         dal.PastePicture(myinlineshape); 
  7.     } 

Excel:

  
  
  
  
  1. public void PastePicture(Microsoft.Office.Interop.Word.InlineShape inlineShape) 
  2.     Range range = (mySheet.Cells[1, 1] as Range); 
  3.     range.Select(); 
  4.     mySheet.PasteSpecial(inlineShape.Type, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value); 

 
실행 후 그림 크기가 일치하지 않으면 PasteSpecial의 마지막 인자를true로 조정할 수 있습니다.매개변수 유형:

  
  
  
  
  1. public virtual void PasteSpecial ( 
  2.     [OptionalAttribute] Object Format, 
  3.     [OptionalAttribute] Object Link, 
  4.     [OptionalAttribute] Object DisplayAsIcon, 
  5.     [OptionalAttribute] Object IconFileName, 
  6.     [OptionalAttribute] Object IconIndex, 
  7.     [OptionalAttribute] Object IconLabel, 
  8.     [OptionalAttribute] Object NoHTMLFormatting 

참고:
현재 wd Inline Shape Linked Picture와 wd Inline Shape Picture 두 가지 유형만 시도해 보았습니다. 다른 유형이나 비 Inline Shape를 만났을 때 Paste를 사용하는 데 오류가 없으면 Paste가 적당합니다.

좋은 웹페이지 즐겨찾기