More efficient way to export output to Excel

4 views (last 30 days)
Hello,
I am currently following this method to export the results to one Excel file:
xlswrite('C:\Users\...\Graph.xlsx',{'A' 'B' 'C' 'D'},'Sheet1','A1');
xlswrite('C:\Users\...\Graph.xlsx',PriceA','Sheet1','A2');
xlswrite('C:\Users\...\Graph.xlsx',PriceB','Sheet1','A2');
.
.
etc
There must be a more efficient way that opens the excel file only once, but I am not able to locate it. It is not really logical to write every time separately to the same file.
Any assistance is appreciated.
Thanks

Accepted Answer

Azzi Abdelmalek
Azzi Abdelmalek on 30 Aug 2013
Edited: Azzi Abdelmalek on 30 Aug 2013
EDIT
header={'A' 'B' 'C' };
priceA=[1 2 3]';
priceB=[4 5 6 8 9 1 0 12 15 20]';
priceC=[7 8 9 10]';
max_n=10;
tr=@(price)[num2cell(price) ;repmat({[]},max_n-numel(price),1)]
priceA=tr(priceA)
priceB=tr(priceB)
priceC=tr(priceC)
M=[header;[priceA priceB priceC]]
xlswrite('C:\Users\...\Graph.xlsx',M)
  15 Comments
Azzi Abdelmalek
Azzi Abdelmalek on 30 Aug 2013
Edited: Azzi Abdelmalek on 30 Aug 2013
Sorry, there is a mistake. write D=trc(D) instead of D=trc(C)
AND
AND on 30 Aug 2013
Thanks Azzi- It is working perfectly now.
Best of Regards//

Sign in to comment.

More Answers (1)

Shashank Prasanna
Shashank Prasanna on 30 Aug 2013
Edited: Shashank Prasanna on 30 Aug 2013
You can use the com interface directly. XLSWRITE does this each time when you call it.
Here is an example:
More about COM Interface:
  2 Comments
AND
AND on 30 Aug 2013
Thanks for your answer Shashank, but my issue is a little different.
Regards-
Shashank Prasanna
Shashank Prasanna on 30 Aug 2013
You said your issue is the following. Quote:
There must be a more efficient way that opens the excel file only once, but I am not able to locate it. It is not really logical to write every time separately to the same file.
What I gave you does exactly that.
Regards,

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!