2016-12-01 4 views
0

Ich arbeite mit einer ziemlich großen Excel-Datei in MATLAB mit der xlsread-Funktion. Ich bin besonders an einer benannten Zelle interessiert, sagen wir, sie heißt FIRST_DATA. So in MATLAB nenne ich:Erhalte die Zeilennummer einer benannten Excel-Zelle in MATLAB

[num, txt, raw] = xlsread(filename,sheet,'FIRST_DATA')

Aber ich bin nicht daran interessiert, in den Daten, dass diese Zelle enthält, aber in der Anzahl der Reihe dieser Zelle. Wie kann ich diese Informationen erhalten?

Meine erste Schätzung lautet, zuerst die Daten in der Zelle zu lesen, dann das ganze Blatt zu lesen und schließlich die resultierende Matrix nach den Zellendaten zu durchsuchen, um die Zeile zu finden. Aber ich hoffe auf einen bequemeren Weg oder einen mit weniger Aufwand.

Vielen Dank für Ihre Hilfe!

+0

Wenn die benannte Zelle in Excel definiert ist, bin ich mir nicht sicher, ob Sie die Zeilennummer über 'xlsread' abrufen können. Versuchen Sie die Methoden von 'actxserver ('Excel.Application')' – Adiel

+0

es funktioniert, werde ich das "wie" als Antwort veröffentlichen. –

Antwort

1

Es gibt einen Weg mit ActiveX, wie von Adiel in den Kommentaren vorgeschlagen. Codebeispiel:

excelapp = actxserver('Excel.Application'); 
workbook = excelapp.Workbooks.Open('myspreadsheet.xlsx'); 
worksheet = workbook.Sheets.Item('sheet_with_data'); 
worksheet.Activate; 
row_number = worksheet.Range('FIRST_DATA').Row; 
Close(workbook); 
Quit(excelapp); 
delete(ExcelApp); 

Sie sollten alles ordnungsgemäß schließen, um mögliche Speicherlecks zu verhindern.

+0

Toll, dass Sie die Lösung gefunden haben! – Adiel

Verwandte Themen