Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
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?



  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default Efficient Code to Copy a 1-D Array to a Worksheet Column

1-D arrays do not have a transpose.
P.S. Copying the data from the 1D array into a 2D array does work, but is
adds efficiency due to the extra copy step. Using single-dimensioned,
zero-based arrays is recommended for best performance in general.
  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 27,285
Default Efficient Code to Copy a 1-D Array to a Worksheet Column

< smile

--
Regards,
Tom Ogilvy


"R.E." wrote in message
...
1-D arrays do not have a transpose.
P.S. Copying the data from the 1D array into a 2D array does work, but is
adds efficiency due to the extra copy step. Using single-dimensioned,
zero-based arrays is recommended for best performance in general.



  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 6,582
Default Efficient Code to Copy a 1-D Array to a Worksheet Column

Choose your inefficiency:

(a) Invoke WorksheetFunction.Transpose(MyArray) [I don't know how you would
do it in C#; that's your problem]

(b) Create and populate a 2D array from the 1D array.

If I were doing this in VBA I would try both ways with a timer to see which
performance hit was worse.

- Jon
-------
Jon Peltier, Microsoft Excel MVP
Tutorials and Custom Solutions
http://PeltierTech.com
_______


"R.E." wrote in message
...
Correction on my typo: Copying the data from the 1D array into a 2D array
does work, but adds inefficiency due to the extra copy step. I'd like a
more
efficient way. My app is going to be slow enough for the large arrays I
have, without adding an extra copy step.



  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 6,582
Default Efficient Code to Copy a 1-D Array to a Worksheet Column

If I were doing this in VBA I would try both ways with a timer to see
which performance hit was worse.


.... and if it didn't matter much, I'd use WorksheetFunction.Transpose,
because I'm basically lazy.

- Jon
-------
Jon Peltier, Microsoft Excel MVP
Tutorials and Custom Solutions
http://PeltierTech.com
_______


"Jon Peltier" wrote in message
...
Choose your inefficiency:

(a) Invoke WorksheetFunction.Transpose(MyArray) [I don't know how you
would do it in C#; that's your problem]

(b) Create and populate a 2D array from the 1D array.

If I were doing this in VBA I would try both ways with a timer to see
which performance hit was worse.

- Jon
-------
Jon Peltier, Microsoft Excel MVP
Tutorials and Custom Solutions
http://PeltierTech.com
_______


"R.E." wrote in message
...
Correction on my typo: Copying the data from the 1D array into a 2D array
does work, but adds inefficiency due to the extra copy step. I'd like a
more
efficient way. My app is going to be slow enough for the large arrays I
have, without adding an extra copy step.





Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Copy & Paste code more efficient Desert Piranha[_102_] Excel Programming 12 August 16th 06 04:51 AM
Efficient Array Formula Construction Mike Moore Excel Discussion (Misc queries) 8 July 24th 06 12:37 AM
Efficient Code GregR Excel Programming 7 June 27th 05 04:09 PM
More Efficient code than this thom hoyle Excel Programming 14 May 11th 05 07:40 AM
More efficient code Rob Bovey Excel Programming 1 July 9th 03 04:46 AM


All times are GMT +1. The time now is 03:34 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"