Excel Tabelle in Android Studio Array, wie?

  • Antworten:4
  • OffenNicht stickyBentwortet
  • Forum-Beiträge: 11

05.11.2020, 12:35:39 via Website

Ich suche einen Weg eine Excel Datei in einen Array in Android Studio zu bringen. Habe nie mit externem Import wie aus Excel Datein gearbeitet und ein Tutorial das funktioniert habe ich auch nicht gefunden.
Da ich immer wieder Daten hinzufügen möchte und dafür nicht immer im Code etwas ändern will, versuche ich das jetzt extern mit einer Excel Datei zu lösen.

image

— geändert am 05.11.2020, 12:36:12

Diskutiere mit!
Beste Antwort
  • Forum-Beiträge: 11.168

13.11.2020, 10:48:19 via Website

Ich gehe mal davon aus dass in deiner Liste "y" die Namen (x,y,z) steht oder?

Dann fehlt jan icht mehr viel:

List<Integer> resIds = new ArrayList<Integer>();
for(String item : y){ //in item steht dann x,y oder z
int resID = getResId(item, R.drawable.class); // über Reflections die ResouceId auslesen
resIds.add(resID); //id zur Liste hinzufügen.
}

Jetzt kannst du die RestIds aus der Liste nutzen,

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
Diskutiere mit!
  • Forum-Beiträge: 11.168

05.11.2020, 12:48:13 via Website

Hallo Kiwi_gamer,

ich würde nicht direkt mit Excel anfangen, sondern mit CSV.
Diese kannst du besser einlesen und verarbeiten.

Ansonsten musst du einfach den String der CSV Datei einlesen und in Zeilen und spalten parsen.
Am besteh geht das mit StrrintSplits an den passenden stellen.

Vor Jahren habe ich mal ein Objektorientiertes Beispiel implementiert:
https://github.com/PlPt/JavaCSVReader

Was schwieriger werden dürfte, ist die Excel werte auf die Drawables umzusetzen. Denn R.drawable.x1 ist eingentlich einfach nur ein Integer und kein String.
Da musst du dann den Umweg über Reflections gehen:
https://stackoverflow.com/a/4428288

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
Diskutiere mit!
  • Forum-Beiträge: 11

12.11.2020, 20:52:22 via Website

Hi, in den letzten Tagen habe ich versucht zu verstehen wie das gehen soll mit den Reflections. Ich verstehe es nicht. Wäre cool wenn du mir ein Beispiel schreiben könntest oder ein Tutorial verlinken könntest. CSV Datein auslesen funktioniert:

BufferedReader x = null;
    try {
        x = new BufferedReader(
                new InputStreamReader(getContext().getAssets().open("data3.csv")));

        String mLine;
        while ((mLine = ax.readLine()) != null) {
            String[] strArray = mLine.split(",");
            y.add(strArray[1]);
        }
    } catch (IOException e) {
        //log the exception
    } finally {
        if (x != null) {
            try {
                x.close();
            } catch (IOException e) {
                //log the exception
            }
        }
    }

Habe einiges versucht bisher hats aber nicht geklappt die R.Drawable.x verweise in einen Int[] Array zu bekommen.

Hilfreich?
Diskutiere mit!
Beste Antwort
  • Forum-Beiträge: 11.168

13.11.2020, 10:48:19 via Website

Ich gehe mal davon aus dass in deiner Liste "y" die Namen (x,y,z) steht oder?

Dann fehlt jan icht mehr viel:

List<Integer> resIds = new ArrayList<Integer>();
for(String item : y){ //in item steht dann x,y oder z
int resID = getResId(item, R.drawable.class); // über Reflections die ResouceId auslesen
resIds.add(resID); //id zur Liste hinzufügen.
}

Jetzt kannst du die RestIds aus der Liste nutzen,

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
Diskutiere mit!