2011-07-28 4 views
1

RoomType 배열을 Excel 북에 삽입하려고합니다. RoomType의 범위는 D22에서 D25까지이므로이 코드는이 범위의 firts 값만 넣을 수 있습니다. for 루프에 RoomType.set_Value를 삽입하면 마지막 배열 항목으로 채우기 범위를 능가합니다. 누구든지 나를 도울 수 있습니까?C#. Microsoft interop는 탁월합니다.

Object[,] RoomtypeArray = new object[1, _RoomType.Count]; 
    for (int i = 0; i < _RoomType.Count; i++) 
       { 
        RoomtypeArray[0, i] = _RoomType[i]; 

       } 
RoomType.set_Value(Type.Missing, RoomtypeArray); 
+0

정확히 _RoomType은 무엇입니까? RoomType과 동일합니다. – MGZero

+0

RoomType은 범위이고 _RoomType은 List 입니다. –

답변

2

이 당신이 필요로하는 무엇을 :

//Microsoft.Office.Interop.Excel.Range RoomType; 
//List<double> _RoomType; 

object[,] roomTypeArray = Array.CreateInstance(
    typeof(object), 
    new int[] { 1, _RoomType.Count}, 
    new int[] { 1, 1 }); 

for (int i = 0; i < _RoomType.Count; i++) 
{ 
    roomTypeArray[1, i + 1] = _RoomType[i]; 
} 

RoomType.Value2 = roomTypeArray; 

범위에 대한 배열을 설정하면 C#에서 new 한 Statment와 함께 사용하는 대신 0 기반의 1 기반 인덱스를 필요로하기 때문이다.

(엑셀 Inerop에서 사용하기 위해 object [,]와 double [,] 사이의 간결한 트릭을 찾으려면 How can I quickly up-cast object[,] into double[,]?의 대답을 참조하십시오.

관련 문제