Daten aus Excel-Datei in Objective-C (iPhone) lesen [closed]

Lesezeit: 6 Minuten

Ich habe in Google gesucht, aber ich scheine keine Möglichkeit zu finden, Excel-Dateien von Objective-C zu lesen. Die einzigen Antworten, die ich finde, sind, zuerst in CSV zu konvertieren und dann als Textdatei zu lesen, aber das möchte ich nicht.

Ich weiß, dass es einen Weg geben muss, obwohl ich viele Male die PHP-Module zum Lesen/Schreiben von Excel-Dateien verwendet habe, also nehme ich an, dass es dafür auch eine C-Bibliothek gibt (die dann in der Objective-C/iPhone-App verwendet werden könnte).

Also … kennt jemand eine solche Bibliothek, die ich auf dem iPhone verwenden könnte?

  • Nun, sieht so aus, als ob die Antwort nach “Nein, auf keinen Fall” lautet. Die Links unten würden demjenigen, der genug Zeit hat, einen großartigen Start geben

    – Marin Todorow

    31. August 2010 um 17:41 Uhr

  • Der obige Kommentar ist nicht mehr gültig – eine echte Antwort wurde unten bereitgestellt 🙂

    – David H

    18. Juli 2012 um 14:03 Uhr

Ich denke, die PHP-Bibliotheken verwenden die Office OpenXML-Formate … Die beste Bibliothek zum Lesen/Schreiben von binären Excel-Dateien (ohne Excel selbst auszuführen und über COM aufzurufen), die ich verwendet habe, ist Apache POI – http://poi.apache.org/, aber das ist Java. Sie könnten versuchen, GCJ zu verwenden, um das auf dem iPhone zum Laufen zu bringen, aber wer weiß, was Apple daraus machen würde. Sie könnten das Ganze manuell nach Obj-C/C++ portieren, denke ich …

Es gibt ein paar C / C++-Bibliotheken, die eine begrenzte Teilmenge erledigen, aber sie sind wahrscheinlich nicht unglaublich zuverlässig oder einfach zu verwenden.

http://xlslib.sourceforge.net/index.php -LGPL

http://www.libxl.com/ – Kommerziell, 199 $, wer weiß, ob sie Ihnen die Quelle dafür geben würden, um sie in Ihre App zu kompilieren.

http://www.codeproject.com/KB/office/ExcelFormat.aspx – C++-Quelle, unglaublich unklare Lizenz wie alles im Code-Projekt. Wer weiß.

Eine andere Möglichkeit besteht darin, zu versuchen, den Code von einem Open-Source-Konkurrenten zum Lesen von Excel zu extrahieren. Offenes Büro – http://www.openoffice.org/ – wird wahrscheinlich ein kompletter Albtraum, Gnumeric ist wahrscheinlich eine bessere Wahl. Excel-Code ist hier – http://git.gnome.org/browse/gnumeric/tree/plugins/excel – Es ist wahrscheinlich eine Menge Herumspielen erforderlich, damit es außerhalb von Gnumeric funktioniert. KSpread hat hier einen ähnlichen Code: http://websvn.kde.org/trunk/koffice/filters/kspread/excel/import/ aber ich glaube, Gnumeric hat einen besseren Ruf für die Genauigkeit beim Excel-Import.

  • Hinweis: xlsLib ist eine Bibliothek zum Generieren von Excel-Dateien, aber ansonsten eine großartige Antwort – viel mehr, als ich selbst finden konnte

    – Marin Todorow

    30. August 2010 um 11:40 Uhr

  • Tolle Antwort (ich würde ihr +1 geben, aber mir sind heute die Upvotes ausgegangen – ich komme später darauf zurück). Das oben erwähnte CodeProject kann der richtige Weg sein – was getan wird, ist aus dem Excel-Binärformat: microsoft.com/interop/docs/OfficeBinaryFormats.mspx#EXB – und Sie müssten diesen Code erheblich bereinigen und verbessern. Das ist, wenn Sie mit Excel 97-2003-Formaten zu tun haben – mit 2007/2010 ist es viel einfacher, da alles nur XML ist.

    – Todd Haupt

    30. August 2010 um 15:59 Uhr

  • Die Antwort ist noch lange nicht das, wonach ich gesucht habe, obwohl ich keinen ROI aus den von mir erstellten Apps habe, also ist es nicht der richtige Weg, einen Großteil der Zeit nur für den Excel-Import aufzuwenden. Obwohl ich das Kopfgeld vergebe, da es in der Tat eine großartige Antwort ist, Prost

    – Marin Todorow

    31. August 2010 um 17:40 Uhr

Benutzer-Avatar
David h

Tatsächlich gibt es ein solches Projekt – es heißt libxls auf Quellenschmiede. Es gibt auch eine ObjectiveC-Klassenschnittstelle zum Projekt. Mit diesem Projekt können Sie eine Excel-Datei öffnen und die meisten Informationen darin lesen (Zellenwerte sowie die Eigenschaften der Datei).

Außerdem gibt es eine iOS Objective C-Schnittstelle zur Bibliothek.

  • “ObjectiveC-Framework, funktioniert sowohl auf Mac als auch auf iOS” ist genau das, wonach ich damals gesucht habe … gute Antwort

    – Marin Todorow

    18. Juli 2012 um 14:00 Uhr

  • Können Sie vorschlagen, wo ich falsch liege? Ich habe xlslib heruntergeladen und kompiliert und in meiner App hinzugefügt, aber es gibt mir den folgenden Fehler für u16string in der Funktionsdefinition, während die Funktionsdeklaration in Ordnung ist Jede Deklaration in „xlslib_core::format_t“ und format.cpp:122:52: Verweis auf „u16string“ ist mehrdeutig und format.cpp:129:1: Unqualifizierte ID erwartet

    – hinduistisch

    27. November 2012 um 5:24 Uhr


  • Es gibt zwei Bibliotheken – libxls zum Lesen von Excel-Dateien (es hat das objc-Framework) und xlslib zum Schreiben von Excel-Dateien (noch nicht auf iOS portiert, aber daran gearbeitet). Libxl sieht gut aus, da Sie es bei Bedarf bearbeiten können.

    – David H

    27. November 2012 um 23:35 Uhr

  • @DavidH danke hilfreich

    – Maddie

    22. November 2013 um 5:56 Uhr

Benutzer-Avatar
Roboter1987

@DavidH
Ich finde, seine Antwort ist die beste, um das Problem zu lösen. Sie werden seine finden DHlibxls besser ist es, die xls-datei im ios-programm zu analysieren. Hier ist in meinem Blog Zusammenfassung

Auf andere Weise verwenden einige libxls.

Wie auch immer, mehr wählen:

https://github.com/QuetzalMX/QuetzalXLSReader

Ich bin kürzlich in ein Projekt eingestiegen, bei dem der Kunde Informationen aus einer Excel-Datei in eine App importieren wollte. Ich kenne eine viel der Leute sagen, wandeln Sie es einfach in eine CSV um und analysieren Sie es auf diese Weise, aber ich wollte wirklich nicht, dass der Client noch einen weiteren Schritt durchläuft und ein anderes Dateiformat einführt – so einfach das auch sein mag.

Ich habe versucht, DHlibxls zu verwenden, aber ich fand es ein bisschen zu kompliziert, also habe ich es erstellt QZXLSReader. Es ist eine Drag-and-Drop-Lösung und daher viel einfacher zu bedienen. Ich denke nicht, dass es als Feature vollständig ist, aber es hat für mich funktioniert.

Es ist im Grunde eine Bibliothek, die XLS-Dateien öffnen und sie in Obj-C-Klassen parsen kann. Sobald Sie die Klassen haben, ist es sehr einfach, sie an Core Data oder ein Wörterbuch oder was auch immer zu senden.

Ich hoffe, es hilft!

  • @oliveresF Ich habe QZXLSReader hinzugefügt. in unserem Projekt und NSString *xlsFileURL =[[NSBundle mainBundle] pathForResource:@”GTM_map_list” ofType:@”xls”]; QZWorkbook *excelReader = [[QZWorkbook alloc] initWithContentsOfXLS:[NSURL URLWithString:xlsFileURL]]; aber immer excelReader.workSheets nil

    – Girijesh Kumar

    20. Dezember 2015 um 11:23 Uhr


  • @oliveresF Ich habe QZXLSReader hinzugefügt. in unserem Projekt und NSString *xlsFileURL =[[NSBundle mainBundle] pathForResource:@”GTM_map_list” ofType:@”xls”]; QZWorkbook *excelReader = [[QZWorkbook alloc] initWithContentsOfXLS:[NSURL URLWithString:xlsFileURL]]; aber immer excelReader.workSheets nil

    – Girijesh Kumar

    20. Dezember 2015 um 11:23 Uhr


1215430cookie-checkDaten aus Excel-Datei in Objective-C (iPhone) lesen [closed]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy