Seite 1 von 1

Excel-Zellen auslesen

BeitragVerfasst: Fr 24. Jan 2014, 10:40
von mangel76
Hallo,

ich arbeite zwar schon eine Weile mit Stata, aber mit Mata hatte ich noch nichts zu tun. Die neue Funktion putexcel ist ja sehr schön, aber ich brächte sowas wie "getexcel", also ich muss aus verschiedenen Exceltabellen einige Werte auslesen. Dabei muss ich die Zellen genau bestimmen können, da die Werte nicht in rechteckigen Tabellen angeordnet sind, import o.ä. fällt also aus.

Auf meiner Suche bin ich dann auf die xl() - Exel file I/O class von Mata gestoßen. Im Prinzip funktioniert das auch ganz gut. Beispiel:

Code: Alles auswählen
clear all
set more off

mata:
B=xl()
B.load_book("C:\data\Test1")
B.set_sheet("Meldung 1")

real matrix cells()
real rowvector rows, cols
rows=(12,12)
colls= (3,3)
cells=B.get_number(rows, colls)
inh=cells[1,1]
st_numscalar("inhalt", inh)
end

di inhalt

exit


Dieses kleine do-file liest also aus der Datei Test1.xls, Blatt Meldung 1 die Zelle C12 aus und gibt sie an Stata als Scalar inhalt zurück. Da ich so etwas sehr oft machen muss, möchte ich eine kleine Funktion daraus machen, der ich nur noch die Koordinaten übergebe. Doch ich bekomme immer nur Fehlermeldungen:

Code: Alles auswählen
clear all
set more off

mata:
B=xl()
B.load_book("C:\data\Test1")
B.set_sheet("Meldung 1")
B.get_number((12,12), (3,3))

void function getcell()
{
   B.get_number((12,12), (3,3))   
}
end
mata: getcell()
exit


Der erste Aufruf von B.get_number() funktioniert, die Funktion getcell() aber nicht, Fehler 3999 system assertion false. (Koordinaten werden bei diesem Beispiel noch nicht übergeben. Auch wenn ich die xls-Datei explizit in der Funktion öffne (B.load_book und B.set_sheet) erscheint dieser Fehler.

Hat jemand ne Idee?

Re: Excel-Zellen auslesen

BeitragVerfasst: Fr 24. Jan 2014, 10:47
von mangel76
Hat sich schon erledigt. Ich muss folgendes einfügen:

Code: Alles auswählen
class xl scalar B


Dann läuft es. Allerdings muss ich wohl auch jedesmal Datei und Tabelle neu öffnen. Oder hat jemand ne andere Idee?

Re: Excel-Zellen auslesen

BeitragVerfasst: Di 24. Mär 2020, 07:31
von monika36
Explain about Excel-Zellen auslesen


mobile app development companies in Dubai