Excel Reading and Writing using Matlab

4 Ansichten (letzte 30 Tage)
Unnikrishnan PC
Unnikrishnan PC am 19 Aug. 2011
I have to read data from a sheet. I have to read each cell and if it contains a number process it and write it to another sheet. How can I change the reference of cells using a loop so that I can read cells one after the other.

Akzeptierte Antwort

Friedrich
Friedrich am 19 Aug. 2011
Hi,
I have an Excel file where the first column (A) is:
1
2
e
3
and loop over the cells and check if the entry is a number. If so I write it into column B.
ex = actxserver('excel.application');
ex.visible = 1;
wb = ex.Workbooks.Open('C:\Users\fhempel\Desktop\tmp\Mappe1.xlsx');
for i=1:10
val = ex.Range(['A',num2str(i)]).get('Value');
if isnumeric(val)
ex.Range(['B',num2str(i)]).set('Value',val);
end
end
wb.Save;
ex.Quit;
ex.delete;
  3 Kommentare
Friedrich
Friedrich am 19 Aug. 2011
The code do nothing if its sees a char or NULL. Thats why Column B keeps the 30 and 40 since e and NULL are skipped and nothing is done with Column B. Thats handled by the part with if isnumeric(val). Do you like to overwrite the content if you see a char? If so add a else brace in which you do ex.Range(['B',num2str(i)]).set('Value',[]);
Unnikrishnan PC
Unnikrishnan PC am 19 Aug. 2011
Thank You Very Much

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Andrei Bobrov
Andrei Bobrov am 19 Aug. 2011
Hi Unnikrishnan PC!
Hi Friedrich!
added variant:
[n t]=xlsread('eg1',1)
xlswrite('eg1', n(~isnan(n)), 2)

Community Treasure Hunt

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

Start Hunting!

Translated by