Я хочу читать из файла Excel в C. Файл Excel 2007 содержит приблизительно 6 000 строк и 2 столбца. Я хочу сохранить содержание в 2-D массиве в C. Если там существует библиотека C или какой-либо другой метод, затем сообщенный мне.
Excel 2007 хранит данные в виде группы файлов, большинство из которых в формате XML, и все они собраны вместе в zip-файл. Если вы хотите просмотреть содержимое, вы можете переименовать свой .xlsx
в something.zip
, а затем открыть его и просмотреть файлы внутри.
Предположим, что ваш файл Excel содержит только необработанные данные, и все, о чем вы заботитесь, это его чтение (т. Е. Вы не нуждаетесь / хотите обновить его содержимое и заставить Excel снова открыть его), чтение данные на самом деле довольно просты. Внутри zip-файла вы ищете подкаталог xl \ worksheets \
, который будет содержать несколько файлов .xml
, по одному для каждого листа из Excel (например, значение по умолчанию рабочая книга будет иметь три листа с именами sheet1.xml
, sheet2.xml
и sheet3.xml
).
Внутри них вы ищете тег
. Внутри у вас будет
тегов (по одному для каждой строки данных), а внутри них
тегов с атрибутом r = RC
где RC
заменяется нормальной записью строки / столбца (например, «A1»). Тег
будет иметь вложенный тег
, в котором вы найдете значение для этой ячейки.
Я чувствую себя обязанным добавить предупреждение: хотя чтение действительно простых данных действительно может быть настолько простым, жизнь может стать много более сложной в спешке, если вы решите сделать гораздо больше, чем читать простые строки / столбцы чисел. Попытка сделать что-нибудь даже немного более сложное, чем это, может в спешке сделать участок более сложным.
У вас есть несколько вариантов:
1) Сохраните рабочий лист Excel в файл csv и проанализируйте его.
2) Используйте COM API (проприетарный и хитрый для Windows)
3) См. Эту ссылку , чтобы узнать о классе C ++, который вы можете изменить.
Другой C lib для чтения данных из файлов Excel можно найти здесь .