Excel Datei in App einbinden

  • Hallo zusammen
    Ich habe vor einer Weile eine App entwickelt mit welcher ein Verwandter Daten aus einer Excel Datei Strukturiert ansehen konnte.
    [Blockierte Grafik: https://picload.org/view/ddcapwli/unbenannt.png.html]
    Damals habe ich die Excel Datei direkt in die App implantiert.
    Dies hat eigentlich ganz gut funktioniert, jedoch war es bei jeder Änderung der List notwendig eine neue APK zu generieren und diese im zu Schicken.
    Die Excel hat es bei jedem laden der Activity mit der Apache POI API ausgelesen.


    Mich würde es Interessieren wie Ihr das mit der Excel Datei lösen würdet.
    Denn ich denke meine Lösung ist nicht besonders Klug. ^^

  • Momentan ist es eine Datei im xls Format. Diese ist fest in der App eingebunden. Jedoch bin ich mir nicht sicher ob dies sinnvoll ist.
    Das File vom Dateisystem laden ist auch keine optimale Lösung, da das File nur sehr umständlich über ein Login im Internet bezogen werden kann.
    Da die App auf mehreren Geräten installiert ist, dachte ich an die Möglichkeit das File online zu haben, so dass die Handys das File automatisch ziehen sobald sie mit dem Internet verbunden sind.
    Das File könnte ich auf meinen Server laden.
    Nur fand ich bis jetzt nichts vergleichbares und ich weiss nicht wie ich an die Sache herangehen sollte.

  • Die Excel Datei ist nur Teil der App. Die App bezieht bestimmte Informationen aus der Tabelle.
    Bis vor einem Jahr hatte er auch die nur die Tabelle in einer anderen App da die Tabelle an sich aber viel zu unübersichtlich ist, habe ich damals eine App entwickelt welche die Excel ausliest und die Daten in einem Ordentlichen Listview ausgibt


    [Blockierte Grafik: https://picload.org/view/ddcapwli/unbenannt.png.html]
    [Blockierte Grafik: https://picload.org/view/ddcapwir/unbenannt2.png.html]

  • Ok damit ist mir der Sachverhalt klarer.
    Denke es ist sinnvoll die Datei online zu legen. Die App kann ja erst prüfen ob eine neue Version online ist und wenn ja dann runter laden. Dann kannst du sie laden und anzeigen. Wo hattest du bis jetzt die Datei in den assets oder.

  • Ja Genau.
    Ich habe bereits versucht die Datei mithilfe eines Inputstreams zu herunterladen, jedoch klappte dies nicht.

    Habe hierbei zwei kleine Probleme...
    Die App stürzt beim ausführen ab, und ich habe keine Ahnung wie ich den Assets Ordner einer bestehenden App angebe...

  • in den assets kannst du nichts speichern.
    Du erstellst zwar eine URL nur wo ist die Internet Adresse?


    https://www.google.de/url?sa=t…Vaw2JUGseAby57rDhouh4xLem


    Ich würde es nicht auf der SD Karte sondern im App Speicher speichern.
    Denn ab API 23 ist es nicht mehr so einfach mit den Premission für den externnen Speicher.
    die Internet Premission ist geblieben.



    Ps. Ok habe gesehen das du eine Adresse in einer Variablen hast.
    Das abstürtzen wird wohl daran liegen das du auf den Externen Speicher schreiben willst und nicht die berechtigung hast.
    Denn die haben sich seit API 23 geändert.
    Auserdem soltest du es in einen extra Thread machen so wie im Video.


    developer.android.com/training/permissions/requesting.html


    Wozu brachst du den Assets Ordner?
    Prüfe am Anfang ob die aktuellste Datei schon geladen ist, wenn ja dann öffne diese , wenn nicht lade die neue Version runter.
    Lösche die alte Datei oder überschreibe sie.
    Wenn keine Datei da ist beim ersten Start der App lade sie herunter. Die Assets brauchst du nicht mehr.


    Ziehe die Möglichkeit inbetracht das wenn keine Internetverbindung da ist du die schon geladene Datei laden kannst.
    Dateiname vielleicht in den Sharedpreferences speichern denn der ändert sich bei deinen Code bei jeden Download.

  • ah ok ich verstehe, was du noch machen könntest, du könntest die datei in excel als cvs exportieren und dann die cvs datei in deiner app parsen. das hat den vorteil dass du die cvs auch einfach bandbreitensparend über das internet verteilen könntest.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!