Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Работа с файлом Excel


Автор: Fixin 17.2.2006, 20:44
Есть файл - 2 столбца и несколько строк. Как из него читать (используя ОLE, Юля, Аня и тп. smile)
Есть вариант распарсить ручками файлик... ну сами понимаете, это на крайняк.

Автор: Nemesis 17.2.2006, 22:15
Использовать Visual Basic собираетесь? Тогда вот тут можно найти нужную информацию
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odc_2003_ta/html/odc_landoffice03_vba.asp

Автор: Fixin 17.2.2006, 22:23
А как я ВБ прикручу к проекту на Си под АПИ? Если я чего не понял - не пинайте.

Автор: Nemesis 17.2.2006, 22:44
Я так понял вам нужен файл с информацией о таблице? Просто импортируйте инфу (с помощью VB) в свой файл и из него читайте в своей проге. Просто на мой взгляд это самый простой способ, поскольку в VB очень удобно и просто обращаться с OLE-объектами.

Автор: Fixin 17.2.2006, 22:53
Мне нужно загнать это все в свою прогу, чтобы не ковыряться с конверторами.

Автор: Nemesis 17.2.2006, 23:21
Я предлагаю вам след реализацию:

Если у вас есть какой-то конкретный эксель-файл и из него нужно перенести инфу в вашу прогу, то вы в этом эксель-файле пишете макрос на VB который создает файл где просто перечисляется нужная вам инфа.

Если у вас не конкретный файл и в любой момент ваша прога должна будет иметь доступ к этому эксель-файлу, то нужно будет уже использовать Сишные OLE-классы. Про них уже вот здесь http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_mfc_OLE_Classes.asp

Автор: Fixin 17.2.2006, 23:28
Блин, в том и дело, что раздел по АПИ - никакого МФС.
Добавлено @ 23:29
Но за ссылку все равно спасибо.
Добавлено @ 23:31
Цитата(Fixin @ 17.2.2006, 23:28 Найти цитируемый пост)
раздел по АПИ
В том смысле. что я сюда пришел, тк пишу на чистом апи. и эти олешные классы мне нужно "заменить" самому, т.е. создать ф-ции, заменяющие их

Автор: Nemesis 17.2.2006, 23:38
Цитата

В том смысле. что я сюда пришел, тк пишу на чистом апи. и эти олешные классы мне нужно "заменить" самому, т.е. создать ф-ции, заменяющие их

тогда к сожалению не могу помочь smile , поскольку на чистом апи не пробовал добраться к Ольгеsmile, а без нее сложнова-то иметь дело с офисом...

Автор: Fixin 17.2.2006, 23:43
В принципе, мой вопрос и заключался в том, как
Цитата(Nemesis @ 17.2.2006, 23:38 Найти цитируемый пост)
добраться к Ольге


Автор: Earnest 21.2.2006, 21:42
А если сохранить как CSV - это можно?
Тогда получится текстовый файлик, элементарно читаемый.

Автор: Fixin 21.2.2006, 21:48
Извини, а структуру файла екселевского знаешь? Там реализован многопоточный FAT. в том смысле что структура подобная файловой системе, и надо рассматривать разные версии фалов.

Цитата(Earnest @ 21.2.2006, 21:42 Найти цитируемый пост)
хотя бы sscanf'ом...
Бинарный файл, у которого данные по секторам раскиданы smile?


С ОЛЕ у меня будет боле-меня универсальный подход. Можете пример показать МФС+ОЛЕ чтения этого екселя, кто-нибудь?
Добавлено @ 21:49
Цитата(Earnest @ 21.2.2006, 21:42 Найти цитируемый пост)
охранить как CSV
Я этого не знаю.
Добавлено @ 21:50
Все сказано с уважением smile

Автор: Earnest 21.2.2006, 22:03
Да, Fixin, сначала не заметила что про экселевские файлы речь, сильно удивилась вопросу... Потом поправила...
CSV - это Comma separated values. С какого-то перепуга Excel его тоже своим форматом считает. Короче, если таблица такая простая, как ты пишешь, то она элементарно сохраняется в CSV-формате. А это просто текстовый файл.
Насчет COM: к сожалению, именно с Excel не имела дела.

Автор: Helicopterr 21.2.2006, 22:46
Цитата(Fixin @ 21.2.2006, 21:48)
С ОЛЕ у меня будет боле-меня универсальный подход. Можете пример показать МФС+ОЛЕ чтения этого екселя, кто-нибудь?

OLE без MFC это долго... Остаются SDK и ATL. Больше с COM ничего не работает.
Пример на MFC это просто. Создаешь в Студии проект MFC и на вкладке Compound Document Support выбираешь Container. Среди серверов всегда есть MS Excel.
Также прикрепляю разные общие примеры.

Автор: Fixin 21.2.2006, 22:51
что-то не качается

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)