Quiero leer de un archivo de Excel en C. El archivo de Excel 2007 contiene aproximadamente 6000 filas y 2 columnas. Quiero almacenar los contenidos en una matriz 2-D en C. Si existe una biblioteca C o algún otro método, por favor avíseme.Lea del archivo de Excel en C
Respuesta
Excel 2007 almacena los datos en un grupo de archivos, la mayoría de ellos en XML, todos agrupados en un archivo zip. Si desea ver los contenidos, puede cambiar el nombre de su .xlsx
al whatever.zip
y luego ábralo y mire los archivos que están dentro.
Suponiendo que el archivo de Excel solo contiene los datos en bruto, y lo único que importa es la lectura (es decir, lo hace no necesidad/quiere actualizar su contenido y obtener Excel para abrir de nuevo), es en realidad la lectura de los datos muy fácil. Dentro del archivo zip, está buscando el subdirectorio xl\worksheets\
, que contendrá un número de archivos .xml
, uno para cada hoja de cálculo de Excel (por ejemplo, un libro de trabajo predeterminado tendrá tres hojas de cálculo llamadas sheet1.xml
, sheet2.xml
y sheet3.xml
).
Dentro de esos, está buscando la etiqueta <sheet data>
. Dentro de eso, tendrá <row>
etiquetas (una para cada fila de datos), y dentro de ellas <c>
etiquetas con un atributo r=RC
donde RC
se reemplaza por la notación de fila/columna normal (por ejemplo, "A1"). La etiqueta <c>
habrá anidado la etiqueta <v>
donde encontrará el valor para esa celda.
me siento obligado a añadir una advertencia sin embargo: mientras que la lectura de datos muy simple puede ser de hecho así de fácil, la vida puede obtener una gran cantidad más complejo en un apuro si decide hacer mucho más que la lectura de filas simples/columnas de números. Intentando hacer cualquier cosa, incluso ligeramente más complejo que eso, puede obtener un lote más complejo a toda prisa.
¡Estaba escribiendo esto! +1 por pensar como yo
@cciotti: Es todo ** superficialmente ** muy fácil ... PERO: necesito examinar la secuencia 'xl/_rels/workbook.xml.rels' en caso de que el usuario haya barajado la hoja de orden ; El elemento '
muy emocionante ver el archivo zip escondido usando la máscara del archivo * .xlsx. ¡Guauu! – RBT
Tiene varias opciones:
1) Guarde su hoja de trabajo de Excel en un archivo csv y analice eso.
2) Utilice la API COM (propiedad de Windows y complicada)
3) See this link para una clase de C++ que puede modificar.
4) pure python solution :) http://juno-devel.ovh.org/Public/Code/Python/xls2csv.0.4.py - solo depende del paquete "xlrd" –
La clase C++ vinculada solo parece funcionar para el formato anterior '.xls', no el formato Excel 2007' .xlsx'. Hay poca similitud entre los formatos. –
@Marco Mariani: El OP quiere leer datos de Excel en la memoria; él no quiere destruirlo y escribirlo en un archivo pseudo-CSV. Debería usar 'xlrd' directamente [si está contento con Python en lugar de C, y feliz con el uso del código alfa para leer archivos XLSX]. –
- 1. C#, lea las estructuras del archivo binario
- 2. Lea el archivo excel xlsx usando simplexlsx en php
- 3. VBA ADODB excel - lea datos del conjunto de registros
- 4. C# lea la hoja de cálculo de Excel
- 5. Lea el archivo de Excel protegido con contraseña usando OLEDB en C#
- 6. c lea los permisos de un archivo
- 7. Lea el archivo codificado UNIX con C#
- 8. lea un archivo MSWord en R
- 9. Leer datos del archivo Excel en Objective-C (iPhone)
- 10. Lea la sección del certificado del archivo de configuración del servicio azure usando C#
- 11. Lea el archivo del almacenamiento de blobs de Azure
- 12. Lea un archivo zip dentro del archivo zip
- 13. Lea todo el archivo ASCII en C++ std :: string
- 14. Lea el archivo XML en XmlDocument
- 15. Lea el archivo con Rhino
- 16. Multithreading un archivo masivo lea
- 17. Lea el archivo binario en una estructura
- 18. Lea los metadatos del archivo de imagen con javascript
- 19. Lea un archivo .txt dentro del directorio de documentos
- 20. Lea y sobrescribir un archivo en Python
- 21. Archivo de Excel y estructura del programa
- 22. Lea SharedPreferences cuando no haya establecido el nombre del archivo
- 23. Lea el archivo del puerto serie usando Java
- 24. Lea el hexágono en C# usando IO
- 25. Lea el último byte del archivo y trunque al tamaño
- 26. Lea un archivo con caracteres Unicode
- 27. Contraseña Protección de un archivo de Excel en C#
- 28. Lea XML en LINUX
- 29. Cómo leer el archivo abierto de Excel en C#
- 30. Validar imagen del archivo en C#
¿se puede exportar como csv? – ShinTakezou