1

Тема: Пошук бібліотеки для роботи з XLS-файлами

Доброго часу доби на форумі.

Якось переді мною постала задача: вичитати дані з таблиці xls-файлу (структуру аркушів та їх організацію вважаємо відомою за замовчуванням). Мова реалізації - С++. Оскільки тут мова йде про роботу не зі звичайними текстовиками, Гуголь був підданий нишпорінню у пошуках якої-небудь готової бібліотеки. Результати:

1) Знайдений відповідний модуль Qt та його QAxObject дозволили вирішити проблему лише частково, оскільки і без того громіздка бібліотека досить повільно працювала з COM-об'єктами шляхом запитів до ODBC-сервера (а стояв сьомий офіс на не конче потужному компі), а часто програма взагалі падала.

2) Спроби використання opensource-проектів з сайтів типу sourceforge.net завершилися після того, як під час спроби компіляції однієї з таких бібліотек (один файл-заголовок та один сирцевий, якщо не помиляюся) g++ видав помилочку у N-рядку (N лежить між 200 та 3000), а сам код нагадував сиркову масу з родзинками директив #ifdef...

3) У пам'яті випливли спогади про зручні і легкі бібліотеки xlwt та xlrd, однак.. написані на Пітоні. Спроба використання бібліотек вперлася у необхідність пхання інтерпретатора Пітона в фінальний екзешник, що робило його занадто важким.

Тож питання наступне: чи може хтось щось порадити щодо даної проблеми?

З.І: наразі у програмі працює лише запис в xls-файл з використанням Qt, але варіант явно не найліпший...

I belong to the Dead Generation.

2

Re: Пошук бібліотеки для роботи з XLS-файлами

А ось це пробували використовувати http://www.codeproject.com/Articles/425 … at-Library ?
Або http://www.libxl.com/ ?

Подякували: Bartash1

3

Re: Пошук бібліотеки для роботи з XLS-файлами

Replace написав:

А ось це пробували використовувати http://www.codeproject.com/Articles/425 … at-Library ?
Або http://www.libxl.com/ ?

LibXL у моєму випадку доступний лише як демо-версія, а там ліміт на кількість комірок у файлі не відповідає обсягам файлів, які у мене парсяться.

Щодо ExcelFormatLibrary - бачив, та якось сталося, що він швидко забувся. Однак дякую, що нагадали - треба спробувати прикрутити. :)

I belong to the Dead Generation.

4

Re: Пошук бібліотеки для роботи з XLS-файлами

Що ж, у перервах між сесією маємо трохи результатів такого вигляду.

Спробував прикрутити ExcelFormatLibrary як складову тестового хелловорда.
IDE: Eclipse
Компілятор: Mingw (g++).
Той факт, що бібліотека сама була від початку проектом, зробленим під Visual Studio, не зупинив від спроби "схрещування".

Деякі моменти щодо прив'язки бібліотеки для лише просто компіляції у проекті опускаю, бо.. уже підзабув. :-[
Та й не суттєві вони тут, а чому - далі...

Програма зібралася, але.. впала на етапі збереження створеного xls-файлу. У процесі куріння коду та гуглопошуків виявилося, що помилка, як водиться,.. "в ДНК". В ДНК Mingw, який у стабільних версіях не повністю підтримує wstring. Внаслідок цього програма кидала bad_cast exception у функції

inline std::wstring widen_string(const std::string& str)

.

Висновок з цього думковиливу: бібліотека потенційно може бути використана, але вона є фактично несумісною з mingw, тому у моєму випадку є непридатною. А жаль.

Питання пошуку бібліотеки залишається відкритим.

I belong to the Dead Generation.