View Single Post
  #1   Report Post  
Posted to microsoft.public.excel.programming
Tom Ogilvy Tom Ogilvy is offline
external usenet poster
 
Posts: 27,285
Default Efficient Code to Copy a 1-D Array to a Worksheet Column

I suspect that is the way. Just to add, however,


In VBA it would be

Range("A1:A10").Value = Application.Transpose(my1Darray)

so perhaps you can figure out how to do that in C#.

--
Regards,
Tom Ogilvy



"R.E." wrote in message
...
Microsoft Support explains how to copy an array to a range in the Article
(ID
306023) "How to transfer data to an Excel workbook by using Visual C# 2005
or
Visual C# .NET":
objRange = objSheet.get_Range("A2", m_objOpt);
objRange = objRange.get_Resize(100,3);
objRange.Value = objData;
Although the last line should be:
objRange.set_Value(Type.Missing, objData);

When using a 1D array to transfer data, set_Value assumes the 1D array is
a
row of data, even if the range specifies a single column of cells:
float[] aryFloats;
objRange = objSheet.get_Range("A2", Type.Missing);
objRange = objRange.get_Resize(aryFloats.Length, 1);
objRange.set_Value(Type.Missing, aryFloats);
How can I efficiently copy a large 1D array into a column of cells? Is
there a more efficient way than copying the data from the 1D array into a
2D
array?