2012-06-19 2 views
5

내 작업은 엑셀 워크 시트의 특정 셀에 URL의 그림을 넣는 것입니다. 나는 이것을하기 위해 C#으로 NetOffice를 사용하고있다.엑셀 셀에 그림을 삽입하는 방법은 무엇입니까?

내 주요한 문제는 내가 그림을 셀에 정확히 삽입하는 방법을 찾을 수 없다는 것입니다. Sheet.Shapes.AddPicture()를 사용할 때 그림을 넣을 좌표를 계산해야합니다. 물론, 나는 어떤 문제 해결 방법을 만들었지 만,이 문제를 해결하기위한 나의 접근 방식이 맞는지 또는 셀에 이미지를 삽입 할 수있는 다른 방법이 있는지 묻고 싶습니다.

더그 Glancy Excel에서 셀의 "내부"로 그림을 고려하지 않는다는에 올바른 있지만
var floatLeft = FloatLeftPixelsCalculation(rowNumber); 
var floatTop = FloatTopPixelsCalculation(rowNumber); 
Worksheet.Shapes.AddPicture(urlCellValue, MsoTriState.msoFalse, MsoTriState.msoTrue, floatLeft, floatTop, PictureWidth, PictureHeight); 

public float FloatTopPixelsCalculation(int rowNumber) 
     { 
      float floatTop = 0; 
      for (var rNumber = 1; rNumber < rowNumber; rNumber++) 
      { 
       var cellHeight = Convert.ToSingle(Worksheet.Cells[rNumber, ColumnIndex].RowHeight); 
       floatTop = floatTop + cellHeight; 
      } 

      return floatTop; 
     } 

     public float FloatLeftPixelsCalculation(int rowNumber) 
     { 
      float floatLeft = 0; 
      for (var columnNumber = 1; columnNumber < ColumnIndex; columnNumber++) 
      { 
       var cellWidth = Convert.ToSingle(Worksheet.Cells[rowNumber, columnNumber].ColumnWidth); 
       floatLeft = floatLeft + cellWidth; 
      } 

      return floatLeft; 
     } 
+0

내가 아는 한, 이미지는 워크 시트의 셀 내부로 직접 이동하지 않습니다. 이것은 이미지를 스프레드 시트에 삽입함으로써 나타납니다 - 셀 위의 "떠 다니는"고지 - 클립 아트, 모양 등과 동일합니다. –

+1

사진을 셀에 삽입 할 수 없습니다. 위쪽 및 왼쪽 속성 등을 사용하여 셀과 정렬하는 방법이 올바른 것입니다. –

답변

1

, 그림이 될 수 특정 셀과 관련된 : 여기

내 해결 방법입니다 올바르게 배치하면 직관적으로 행동 할 것입니다.

예를 들어 주택 목록이 있다고 가정 해보십시오. 칼럼 A-Y에는 집에 대한 다양한 정보가 있으며, 칼럼 Z에는 집에 대한 그림이 있습니다. 그림이 올바른 셀과 올바르게 연결되어 있으면 정렬, 잘라 내기, 복사, 붙여 넣기 범위를 사용하면 그림이 예상대로 작동합니다.

  1. 사진이 전체 세포의 내부에 있어야합니다 : 적절하게 주택을 조작하는 엑셀 위해서는

    , 그들은 두 가지 기준을 충족해야합니다. 위의 코드를 사용하여 먼저 그림을 원래대로 배치 한 다음 셀의 행 높이와 열 너비를 그림의 높이와 너비와 같게 조정합니다.

  2. shape.Placement 속성은 xlMove 또는 xlMoveAndSize로 설정해야합니다. 사진은 세포 내부에 완전히이고 .PlacementxlMove 또는 xlMoveAndSize 후마다 용기 세포 이동, 화면에 설정하면 xlFreeFloating (3) Object is free floating. xlMove (2) Object is moved with the cells. xlMoveAndSize (1) Object is moved and sized with the cells.

: MS 문서에서 배치 속성은 다음 중 하나 일 수있다 그것으로 움직일 것이다. .PlacementxlMoveandSize으로 설정된 경우 셀 너비 또는 높이가 변경 될 때마다 그림이 확장되거나 축소됩니다. 이것은 그림이 셀의 경계 안에 머물러 있기 때문에 유용 할 수 있습니다. xlMoveandSize을 사용하는 경우 열 너비 또는 행 높이를 조정하면 그림이 왜곡되지 않도록 ShapeRange.LockAspectRatio = msoTrue으로 설정하는 것이 좋습니다.

그래, 버지니아, 너 사진을 셀에 배치하십시오. 그냥 조심스럽게 놓아야합니다.

관련 문제