Reading from many columns of an excel sheet
Ältere Kommentare anzeigen
I am using the following code to read from multiple columns of an excel sheet. Can someone help me to reduce this code?
ex = actxserver('excel.application');
ex.visible = 1;
exwb = ex.Workbooks.Open('C:\Sgpa.xls');
exSheet1=exwb.Sheets.Item('Marks');
exSheet2=exwb.Sheets.Item('Points');
%ex.Sheet1.Range.invoke;
for i=5:324
val = exSheet1.Range(['J',num2str(i)]).get('Value');
if isnumeric(val) && isfinite(val)
exSheet2.Range(['J',num2str(i)]).set('Value',Points(val));
end
val = exSheet1.Range(['K',num2str(i)]).get('Value');
if isnumeric(val) && isfinite(val)
exSheet2.Range(['K',num2str(i)]).set('Value',Points(val));
end
val = exSheet1.Range(['L',num2str(i)]).get('Value');
if isnumeric(val) && isfinite(val)
exSheet2.Range(['L',num2str(i)]).set('Value',Points(val));
end
val = exSheet1.Range(['M',num2str(i)]).get('Value');
if isnumeric(val) && isfinite(val)
exSheet2.Range(['M',num2str(i)]).set('Value',Points(val));
end
val = exSheet1.Range(['N',num2str(i)]).get('Value');
if isnumeric(val) && isfinite(val)
exSheet2.Range(['N',num2str(i)]).set('Value',Points(val));
end
val = exSheet1.Range(['O',num2str(i)]).get('Value');
if isnumeric(val) && isfinite(val)
exSheet2.Range(['O',num2str(i)]).set('Value',Points(val));
end
end
exwb.Save;
ex.Quit;
ex.delete;
Antworten (1)
Fangjun Jiang
am 25 Nov. 2011
0 Stimmen
Can you explain why you don't use xlsread() directly?
A=rand(10); xlswrite('test.xls',A,'FirstSheet','B2');
B=xlsread('test.xls','FirstSheet','C3:E5');
5 Kommentare
Unnikrishnan PC
am 25 Nov. 2011
Walter Roberson
am 25 Nov. 2011
500 by 12 is small. Less than 48 kilobytes of storage.
Image Analyst
am 25 Nov. 2011
It's funny that students used to learning linear algebra with 3 by 4 matrices think that think sizes like 500x12 are huge. I guess they don't know that typical digital images are like 4000 by 5000 and even those are small. People using CT images, mass spec images, or seismic data sets can be around 100 gig or more. I've heard of some seismic data sets that are terabytes for one "image".
Unnikrishnan PC
am 25 Nov. 2011
Fangjun Jiang
am 26 Nov. 2011
"does not work" really doesn't describe anything. See update. You may need to use [Num, Txt, Raw]=xlsread() for different types of data in the Excel file. All the rest should be straightforward. See doc for help.
Kategorien
Mehr zu Data Import from MATLAB finden Sie in Hilfe-Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!