Leer datos de un archivo de Excel en Objective-C (iPhone) [closed]

6 minutos de lectura

He buscado en google pero parece que no encuentro una manera de leer archivos de Excel de Objective-C. Las únicas respuestas que encuentro son convertir primero a CSV y luego leer como un archivo de texto, pero no quiero eso.

Sé que debe haber una manera, aunque utilicé muchas veces los módulos PHP para leer/escribir archivos de Excel, así que supongo que también hay una biblioteca C para hacer eso (que luego podría usarse en la aplicación Objective-C/iPhone)

Entonces… ¿alguien sabe de una biblioteca de este tipo que podría usar en el iPhone?

  • bueno, parece que la respuesta después es “no, de ninguna manera”. Los enlaces a continuación le darían a quién tiene suficiente tiempo para pasar un gran comienzo.

    – Marín Todorov

    31 de agosto de 2010 a las 17:41

  • El comentario anterior ya no es válido: a continuación se proporciona una respuesta real 🙂

    – David H.

    18 de julio de 2012 a las 14:03

Creo que las bibliotecas PHP usan los formatos OpenXML de Office… La mejor biblioteca para leer/escribir archivos binarios de Excel (sin ejecutar Excel y llamarlo a través de COM) que he usado es Apache POI: http://poi.apache.org/, pero esto es Java. Podría intentar usar GCJ para que funcione en el iPhone, pero quién sabe qué haría Apple con eso. Podrías portar todo manualmente a Obj-C/C++, supongo…

Hay algunas bibliotecas de C/C++ que hacen un subconjunto limitado, pero probablemente no sean increíblemente confiables o fáciles de usar.

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

http://www.libxl.com/ – Comercial, $ 199, quién sabe si le darían la fuente para compilar en su aplicación.

http://www.codeproject.com/KB/office/ExcelFormat.aspx – Fuente C ++, licencia increíblemente poco clara como todo en el proyecto de código. Quién sabe.

Otra opción es intentar extraer el código de un competidor de lectura de Excel de código abierto. Oficina abierta – http://www.openoffice.org/ – es probable que sea una completa pesadilla, Gnumeric es probablemente una mejor apuesta. El código de Excel está aquí – http://git.gnome.org/browse/gnumeric/tree/plugins/excel – Es probable que se necesiten muchos cambios para que funcione fuera de Gnumeric. KSpread tiene un código similar aquí: http://websvn.kde.org/trunk/koffice/filters/kspread/excel/import/ pero creo que Gnumeric tiene una mejor reputación por su precisión respecto a la importación de Excel.

  • nota: xlsLib es una biblioteca para generar archivos de Excel, pero por lo demás es una gran respuesta, mucho más de lo que logré encontrar

    – Marín Todorov

    30 de agosto de 2010 a las 11:40

  • Gran respuesta (haría +1, pero me quedé sin votos a favor hoy, volveré para hacerlo más tarde). El CodeProject mencionado anteriormente puede ser el camino a seguir: lo que se hace es desde el formato binario de Excel: microsoft.com/interop/docs/OfficeBinaryFormats.mspx#EXB – y tendría que limpiar y mejorar significativamente ese código. Eso es si está tratando con formatos de Excel 97-2003; con 2007/2010, es mucho más fácil ya que todo es XML.

    – Todd principal

    30 de agosto de 2010 a las 15:59

  • la respuesta no es lo que estaba buscando ni por asomo, mientras que no tengo ROI de las aplicaciones que hago, por lo que pasar una buena cantidad de tiempo solo en la importación de Excel no es el camino a seguir. Aunque estoy otorgando la recompensa ya que de hecho es una gran respuesta, saludos

    – Marín Todorov

    31 de agosto de 2010 a las 17:40

avatar de usuario
David H.

En realidad, existe un proyecto de este tipo, se llama libxls en la fuente de forja. También hay una interfaz de clase ObjectiveC para el proyecto. Con este proyecto, puede abrir un archivo de Excel y leer la mayor parte de la información que contiene (valores de celda y propiedades del archivo).

Además hay un Interfaz iOS Objective C a la biblioteca.

  • “Framework de ObjectiveC, funciona tanto en Mac como en iOS” es exactamente lo que estaba buscando en ese entonces… buena respuesta

    – Marín Todorov

    18/07/2012 a las 14:00

  • ¿Puede sugerir dónde me equivoco? descargué y compilé xlslib y lo agregué en mi aplicación, pero me da el siguiente error para u16string en la definición de la función, mientras que la declaración de la función está bien.format.cpp: 122: 11: la definición fuera de línea de ‘format_t’ no coincide cualquier declaración en ‘xlslib_core::format_t’ y format.cpp:122:52: la referencia a ‘u16string’ es ambigua y format.cpp:129:1: ID no calificado esperado

    – Hindú

    27 de noviembre de 2012 a las 5:24


  • Hay dos libs: libxls para leer archivos de Excel (tiene el marco objc) y xlslib para escribir archivos de Excel (aún no se ha transferido a iOS pero está trabajando en ello). Libxl se ve bien porque puedes editarlo si lo necesitas.

    – David H.

    27 de noviembre de 2012 a las 23:35

  • @DavidH gracias útil

    – loco

    22 de noviembre de 2013 a las 5:56

avatar de usuario
robot1987

@DavidH
Creo que su respuesta es la mejor para resolver el problema. Encontrarás su dhlibxls es mejor analizar el archivo xls en el programa ios. aqui esta en mi blog resumen

Hace poco ingresé a un proyecto en el que el cliente quería importar información de un archivo de Excel a una aplicación. Yo sé un lote de la gente dice, simplemente transfórmalo en un CSV y analízalo de esa manera, pero realmente no quería que el cliente pasara por otro paso e introdujera un formato de archivo diferente, por simple que sea.

Intenté usar DHlibxls, pero sentí que era demasiado complicado, así que creé Lector QZZXLS. Es una solución de arrastrar y soltar, por lo que es mucho más fácil de usar. No creo que sea una característica completa, pero funcionó para mí.

Básicamente es una biblioteca que puede abrir archivos XLS y analizarlos en clases Obj-C. Una vez que tenga las clases, es muy fácil enviarlas a Core Data oa un diccionario o lo que sea.

¡Espero que ayude!

De otra manera, en algunos lugares se usa libxls.

de cualquier manera, más elegir:

https://github.com/QuetzalMX/QuetzalXLSReader

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad