我试图将RoomType数组插入excel书中。 RoomType的范围是从D22到D25,所以问题是此代码仅将firts值放在此范围内。如果我将RoomType.set_Value插入到for循环中,则excel范围填充最后一个数组项。有谁可以帮助我?
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 :(得分: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;
因为为范围设置数组需要基于1的索引而不是基于0的索引,这些索引与new
中的C#
语句一起使用。
(另请参阅How can I quickly up-cast object[,] into double[,]?的接受答案,找到对象[,]和double [,]之间的巧妙技巧,以便在Excel Inerop中使用。