Чтение .xls без использования Excel

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
skriaxit
Сообщения: 5
Зарегистрирован: 31 авг 2005, 17:37
Контактная информация:

Подскажите, как узнать содержимое заранее заданных ячеек в .xls файле без использования OLE и т.п.
Excel на конечной машине может быть установлен, а может и нет, поэтому задача - обойтись без него.
Задача только в чтении данных.
Hawk
Сообщения: 216
Зарегистрирован: 17 фев 2004, 14:52
Откуда: СПб
Контактная информация:

Вообще когда-то я такую задачу решал через ADO или можно через OLE DB но это сложнее.
Вот например как это делается на VB. На С++ найти примера не удалось, можешь сам поискать хотя в общем-то главное знать какие COM обьекты и какие методы у них вызвать, а перенести на С++ уже не сложно.
Да и в MSDN-t посмотри на предмет ADO и Excel
Absurd
Сообщения: 1228
Зарегистрирован: 26 фев 2004, 13:24
Откуда: Pietari, Venäjä
Контактная информация:

skriaxit писал(а):Подскажите, как узнать содержимое заранее заданных ячеек в .xls файле без использования OLE и т.п.
Никак.
2B OR NOT(2B) = FF
skriaxit
Сообщения: 5
Зарегистрирован: 31 авг 2005, 17:37
Контактная информация:

Спасибо за советы. Но я наткнулся сам на достаточно простое решение моей проблемы: я нашел ActiveX library для чтения/записи .xls файлов без использования excel. См. http://sm-software.com (OLE XLSFile)

2Absurd, Ну, это вы зря, для Дельфистов вообще есть библиотеки, основанные на прямом чтении/записи безо всяких OLE (жаль для С++ такого нет); см ссылку выше
Absurd
Сообщения: 1228
Зарегистрирован: 26 фев 2004, 13:24
Откуда: Pietari, Venäjä
Контактная информация:

[quote="skriaxit"]2Absurd, Ну, это вы зря, для Дельфистов вообще есть библиотеки, основанные на прямом чтении/записи безо всяких OLE (жаль для С++ такого нет)]
Микрософт не открыла формат файла, следовательно эти библиотеки основаны на реверс-инжениринге, и в серьезной программе конкретно я бы использовать их не стал. На худой конец я бы сделал несколько плагинов - для ActiveX, для ODBC и для для такой библиотеки (с припиской - на свой страх и риск).
2B OR NOT(2B) = FF
skriaxit
Сообщения: 5
Зарегистрирован: 31 авг 2005, 17:37
Контактная информация:

Absurd писал(а):
skriaxit писал(а):2Absurd, Ну, это вы зря, для Дельфистов вообще есть библиотеки, основанные на прямом чтении/записи безо всяких OLE (жаль для С++ такого нет)]
Микрософт не открыла формат файла, следовательно эти библиотеки основаны на реверс-инжениринге, и в серьезной программе конкретно я бы использовать их не стал. На худой конец я бы сделал несколько плагинов - для ActiveX, для ODBC и для для такой библиотеки (с припиской - на свой страх и риск).
Вообще-то xls файлы - это полностью открытый формат BIFF7 или BIFF8. Существует немыслимое количество программ не от микрософт, умеющих работать с xls без "ole automation with excel". И никто из них не занимался "реверс-инжинирингом" - это не модно.

PS: А тут (http://www.giffin.org/xlreader.php) вообще лежит исходник на С для чтения xls (вообще без ОЛЕ и т.п.!)
Absurd
Сообщения: 1228
Зарегистрирован: 26 фев 2004, 13:24
Откуда: Pietari, Venäjä
Контактная информация:

Вообще-то xls файлы - это полностью открытый формат BIFF7 или BIFF8.
Репутация Микрософт по поводу поддержки открытых форматов (даже тех, в соддании которых они принимали активное участие) хорошо известна, и не вижу причин вдаваться в подробности в каждом конкретном случае.
2B OR NOT(2B) = FF
Ответить