Форум — Ответы     (  К темам )
 ?  Skolotovich: TOleServer (02-12-2002 18:20:58)
Приветствую вас господа прграмисты
Вопрос такой OleServer'a сильно кривые или просто так кажется
и что вместо этой дряни можно использовать без ущерба для нервов програмиста и пользователя.
Заранее благодарен за ответ
 Владимир (02-12-2002 19:06:05)
Да, это не просто кажется, так оно и есть.
А для чего смотря, какая задача стоит ? Чего требуется конкретно ?
 Skolotovich (02-12-2002 19:20:32)
задача проста как грабли
есть таблица в Excel'e надо перегнать в IB
просто хочу написать нормальную утилиту
поетому юзать что-то вроде F1Book не хочу
да и с оле надо разобраться основательно
если есть нормальные компоненты или идеи как обойти гляки
борландовских компонентов буду очень признателен
 Владимир (02-12-2002 19:42:40)
А неужели таблица такая большая, что программой проще ?

Здесь уже немного писалось о таких компонентах,

"XLSRead Write v.1.35
Автор Ларс Арвидссон (Lars Arvidsson). XLSReadWrite это два компонента Delphi, TXLSRead и TXLSWrite спроектированы для доступа к XLS файлам Microsoft Excel. Нет необходимости устанавливать какие-то другие программы, в том числе Excel. TXLSRead могут читать файлы Excel 2.1, 3.0, 4.0, 5.0, 95, 97 и 2000. Вся информация из ячеек считывается, включая формулы и форматирование ячеек. TXLSWrite может записывать файлы Excel 4.0 и 5.0/ 95/ 97/ 2000. Также могут записываться формулы и форматироване ячеек. TXLSWrite записывает 100,000 ячеек менее чем за 2 секунды."

Посмотрите тему XLSReadWrite2
Может чем и помогут, но думаю не очень сильно.
Я видел их только trial.
Не знаю, на дисках на компьютерных рынках они есть, но вскрытые или нет, не в курсе.
Попробуйте найти к ним crack или может у кого есть не trial или crack ????
Пришлите, please !
 Skolotovich (03-12-2002 10:36:58)
Таблица большая полей 30
но проикол в другом
мне в ближайшем будущем в любом случае придется работать с оле
гонят доки и икселесы поэтому разбираться надо

>Посмотрите тему XLSReadWrite2

спасибо за совет, но есть ли еще что-то стабильное работающее с оле

на форуме RSDN посоветовали ftp.gasp.ru
там в pub->report лежат компоненты делфы завернутые в дллку
сказали что работает стабильно, но я еще не пробовал так, что ничего не скажу
ссылка на вопрос http://rsdn.ru/forum/Message.aspx?mid=144532&only=1
 Владимир (03-12-2002 13:05:39)
Значит нужно менять постановку вопроса.
Написать программу и сразу пусть user вводит данные в базу из вашей программы, минуя ввод данных через Excel
Хотя, конечно разбираться с Excel и Word надо, заодно посмотрите пример
http://rxlib.ru/WinLesson/bles1.htm
в ближайшее время там появиться еще.
 Skolotovich (03-12-2002 17:20:29)
Данные уже в Excel'e и давольно таки много
поэтому вопрос так и ставлю
Более коректно вопрос звучит так:
какими средствами или компонентами базирующимися на OLE можно работать с продуктами MS Office?
требования:
1. стабильность
2. документированость
3. гибкость
4. совместимость с C++Builder

вот конкретно, что меня интересует
 Владимир (03-12-2002 19:14:24)
В любом случае более правильно данные вводить в программе, выполнять проверки при вводе и помещать в базу данных, а уже потом, при необходимости, экспортировать их в Excel

Если вам нужны только данные, то сохраняйте ваши данные в DBF формате, а из него перегоняйте в IB обычными средствами работы с таблицами баз данных.
(или если вам удобнее в любом другом формате: .csv, .txt и т.д, а оттуда
забирайте их своей программой)

Но учтите:
"Форматы файлов dBASE — DBF 2 (dBASE II), DBF 3 (dBASE III) и DBF 4 (dBASE IV) — сохраняют только текст и значения в том виде, в каком они отображаются в ячейках активного листа. Все форматирование, разметка страницы, рисунки, объекты и другие возможности Microsoft Excel утрачиваются. Данные, отображаемые в текущем представлении отчета сводной таблицы, сохраняются; все остальные данные отчета сводной таблицы утрачиваются."
Про остальные файлы можно прочитать там-же — в справке к Microsoft Excel

В противном случае все-таки придется потратить время на изучение OLE
что-то типа
// если Excel запущен — подключиться к нему
try {
App=Variant::GetActiveObject("Excel.Application");
} catch(...) {
// Excel не запущен — запустить его
try { App=Variant::CreateObject("Excel.Application"); } catch (...) {
Application->MessageBox("Невозможно открыть Microsoft Excel!"
"Возможно Excel не установлен на компьютере.","Ошибка",MB_OK+MB_ICONERROR);
} }
............ и так далее


Эта тема также обсуждалась здесь:
http://www.progz.ru/viewtopic.php?t=191&view=next
 Skolotovich (04-12-2002 11:04:13)
Спасибо за советы

и по поводу обсуждения на форуме RSDN
выход из положения нашли следующий:
вместо глюковатых билдеровских компонентов, народ берет делфовские, а они работают болеее стабильно, заворачивают в дллку и юзают

называется ребята пишут на билдере :-)
 Павел (04-12-2002 12:35:22)
Не понял насчет делфовских компонентов. Может поясните ?
Разве в делфи есть какие-то компоненты для работы с Excel, которых нет в Билдере ?
Они разве чем-то отличаются от билдеровских
Ведь вроде как везде написано, что и Дельфи и Билдер используют одну библиотеку VCL и какким же образом они работают более стабильно ? Это вам программисты на делфи такое рассказали, что их компоненты работают более стабильно ?
И что мешает заворачивать в дллку билдеровские компоненты и юзать ?
 Skolotovich (05-12-2002 14:03:36)
Уважаемый Павел

Я саи долго писал на делфе и только недавно перешол на билдер (5-й)
и мое впечатление негативное -- такое ощущение, что все криво
делфа работает гораздо красевее и стабильнее --- ЭТО УТВЕРЖДЕНИЕ!!!!

предисловие к ответу на ваши вопросы :
у паскаля специфика языка другая, а я очень сомневаюсь, что они писали универсальные, межязыковые компоненты

ответ на ваши вопросы прост: делфовская вцл оптимизированая под паскаль БУДЕТ глючить под с++биледер
 Павел (05-12-2002 22:18:45)
Тогда мне все ясно. (Переход Паскаль-Си)
Очень разные языки, когда-то я писал на Паскале, потом перешел на С
Сначала было сложно, пока не въехал в С++, теперь понимаю насколько мощный и
красивый язык. Так что спорить что лучше, С или Паскаль не стоит, кому что больше по душе, мне — С++ — Вам — Паскаль.
Отличные программы можно писать и на том и на другом.
И глюков я думаю везде хватает.
Насчет работы с .xls: скачал и поставил XLSReadWrite2 правда они trial
(сайт http://axolot.com/components/index.htm)
Очень понравились, работу с .xls может облегчить конкретно, хотя конечно если
уже написана библиотека своих часто используемых функций по работе с Excel через OLE, то ничего конечно этого особо сильно не нужно.
 Skolotovich (06-12-2002 10:18:48)
Перейдем опять к старым баранам (саюжу собствено)

при работе с функциями предпросмотра, чтения из ячейки, запись в ячейку и т.д. кричит "Interface not supported"
что это?
этим оно хочет сказать, что не поддерживает интерфейс на котором я пишу?
у тех людей кто давал дллку все работает нормально
может это то, что я сижу за вин2к сервер?

P.S. Я человек дотошный -- пока проблему не решу не успокоюсь :-)
 Павел (06-12-2002 12:55:03)
>>при работе с функциями предпросмотра, чтения из ячейки, запись в ячейку и
>>т.д. кричит "Interface not supported"

Ну это лучше спросить у людей, кто давал dll-ку
(это же наверное их функции )
Может неправильно подключаете dll или точнее идет неправильное обращение
к их функциям ?
Из-за Win2k быть не должно.
 Skolotovich (06-12-2002 16:49:22)
уже в принципе разобрался
это у меня с непревычки, после делфы, руки не так стали
еще не совсем уверенно в билдере орентируюсь