2012-04-14 34 views
5

Esiste un comando di Matlab per ottenere il numero delle righe scritte nel file excel? in primo luogo, riempio la prima riga. e poi voglio aggiungere altre righe nel file excel. quindi questo è il mio file di Excel: enter image description hereMatlab numero di righe nel file excel

ho provato:

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 

Ma numero_colonne = 1048576, invece di 1. prega di aiuto, grazie!

+0

Il file è veramente vuoto? A volte puoi creare celle vuote in Excel e non puoi sapere con certezza che non ci sono. Creare un nuovo file e testare il codice con esso per vedere cosa succede. – Castilho

+0

@Castilho Ho provato quello che hai suggerito, ma num_rows è ancora uguale a 1048576. grazie. –

risposta

4

Se il file è vuoto o contiene dati in una sola riga, quindi .End('xlDown').Row; si sposterà nella parte inferiore del foglio (1048576 è il numero di righe in un foglio Excel 2007+).

Verificare se la cella A2 è vuota per prima e restituire 0 se lo è.

Oppure utilizzare Up dalla parte inferiore del foglio

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

Nota: Non sono sicuro della sintassi Matlab, quindi questo potrebbe essere necessaria una regolazione

+0

grazie ma non funziona, ho aggiornato il mio argomento .. –

+0

Solo una riga si comporta come nessun dato (prova 'Ctrl-Down' in excel per vedere come funziona) Vedi la mia modifica –

+0

grazie mille! ! :]] –

1

È possibile utilizzare la funzione di MATLAB xlsread a leggere nel foglio di calcolo. Questo ottiene i seguenti campi:

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

se si fa un controllo size su strings o misc, questo dovrebbe dare la seguente: niente

[rows columns] = size(strings); 

prove, ho avuto rows = 1, columns = 10 (supponendo altro era oltre 'A' nel foglio di calcolo).