Matlab number of rows in excel file

2019-06-21 19:28发布

is there a command of Matlab to get the number of the written rows in excel file? firstly, I fill the first row. and then I want to add another rows in the excel file. so this is my excel file: enter image description here

I tried:

e = actxserver ('Excel.Application');
filename = fullfile(pwd,'example2.xlsx');
ewb = e.Workbooks.Open(filename);
esh = ewb.ActiveSheet;

sheetObj = e.Worksheets.get('Item', 'Sheet1');
num_rows = sheetObj.Range('A1').End('xlDown').Row

But num_rows = 1048576, instead of 1. please help, thank you!

2条回答
beautiful°
2楼-- · 2019-06-21 19:45

If the file is empty, or contains data in only one row, then .End('xlDown').Row; will move to the very bottom of the sheet (1048576 is the number of rows in a Excel 2007+ sheet).

Test if cell A2 is empty first, and return 0 if it is.

Or use Up from the bottom of the sheet

num_rows = sheetObj.Cells(sheetObj.Rows.Count, 1).End('xlUp').Row 

Note: I'm not sure of the Matlab syntax, so this may need some adjusting

查看更多
太酷不给撩
3楼-- · 2019-06-21 19:57

You can use MATLAB's xlsread function to read in the spreadsheet. This obtains the following fields:

[numbers strings misc] = xlsread('myfile.xlsx');

if you do a size check on strings or misc, this should give you the following:

[rows columns] = size(strings);

testing this, I got rows = 1, columns = 10 (assuming nothing else was beyond 'A' in the spreadsheet).

查看更多
登录 后发表回答