Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.13;
Скачать: CL | DM;

Вниз

Универсальный Excel или что я полчил после бессоной ночи.   Найти похожие ветки 

 
Grrey   (2004-05-28 05:30) [0]

Как в своей программке попытатся исспользовать Excel и не привязываться к версии?
Способ 1.
Попытаться отвязаться от версии используя интерфейсы.
У меня так и не получилось полностью отвязаться от версии. Это вообще возможно? Разные версии подразумевают разные интерфейсы. Попытка мелкософта отвязки от версии (как я понял) - это возможность задания не всех параметров. Но, на сколько я знаю, делфя не позволяет обращаться к методам (даже методам интерфейсов) с не полным списком параметров. Или со списком параметров не правильного типа. Кстати надо отдать должное убожести хелпа по вижуал басику. Один отрывок из онного чуда:
"TextCodePage   Optional Variant. Not used in U.S. English Microsoft Excel.
TextVisualLayout   Optional Variant. Not used in U.S. English Microsoft Excel."
Это параметры метода workbook.SaveAs. Т.е. в ламерикоском Excel"e эти параметры не используются, значит описывать их и не стоит. А про то, что есть и другие люди, отличные от U.S., можно и забыть. Фиг с ними, все равно некогда лицензии не покупали. Хотя я отвлекся от темы. Вобщем, в результате моих жалких попыток написать универсальный компонент я застрял только на одном методе. Это вышеуказанный workbook.SaveAs. Не хочет он сохранять файл, и, кроме того, выполняется с ошибками. Причем выполнял я его стараясь как можно ближе интерпретировать хелп, и из той же версии, что и Excel, на котором экспериментировал. Но об этом мы еще задницу по отсижываем.
Способ 2.
Принять привязанность к версиям как факт и писать отдельный код для каждой верисии. Привязанность к версии - это очень большой недостаток. Во-первых, придется писать кучу кода на каждую версию. Я не самый ленивый человек, но мне даже думать об этом больно. Во-вторых, с выходом новой версии, какой-нибудь Excel XP2, придется переписывать программку, или заставлять заказчиков использовать только нынешние версии, что не приемлимо (представте себе что вы уговариваете заказчика использовать Excel 95 и сразу ощутите всю "неприемлимость" этого решения).
Способ 3.
Купить компоненту у стороннего разработчика и пусть он заботится о версиях. Если выйдет чего-нибудь новое, достаточно будет перекомпилировать прожект. (Хотя производитель может решить выпустить новую версию своего продукта и все прелести 2-ого способа сваливаются вам на голову. Но только теперь совершенно неожиданно)
Способ 4.
Послать все эти комы и олы подальше и в программке сделать импорт только в буфер. Дальше нужно научить заказчика нажимать Ctrl+V в нужном месте нужного файла и проблема решена. Этот способ я еще не использовал (только что придумал), но, думаю, и здесь обязательно какая-нибудь пакость вылезит.


 
y-soft ©   (2004-05-28 08:59) [1]

Если нужно просто экспортировать данные в формат XLS, то можно смело писать в формате BIFF, вообще не используя Excel.

Гарантированно совместим с любой версией Excel


 
Sandman25+1   (2004-05-28 09:24) [2]

В Delphi можно вызывать "методы OLE" в виде ...Method(Param3:="value3", Param1:=12), не указывая все параметры.


 
Grrey   (2004-05-28 17:43) [3]

to y-soft>
А ссылочку можно попросить на доку?


 
Grrey   (2004-05-28 18:01) [4]

Нашел доку. Если кому надо
http://level.kiev.ua/modules.php?name=Downloads&d_op=getit&lid=521
И сразуже встречный вопрос. А как обрабатывать версии BIFF. В статье их описывается со 2 по 8. Я конечно еще не вникал, но перспектива поддерживать кучу версий, мягко говоря, не радует.


 
y-soft ©   (2004-05-28 22:01) [5]

>Grrey   (28.05.04 18:01) [4]

А как обрабатывать версии BIFF. В статье их описывается со 2 по 8. Я конечно еще не вникал, но перспектива поддерживать кучу версий, мягко говоря, не радует

Это только при чтении, и никуда тут не деться, и никакой гарантии, что не появится 9-я и выше :(, а сохранять можно всегда во 2-ю, если, конечно, не требуются расширения следующих версий...

Есть бесплатные компоненты, которые работают именно на этом принципе, ссылок жаль не помню...


 
y-soft ©   (2004-05-28 22:09) [6]

Посмотрите это (бесплатно, но без исходников):

http://www.vtktools.com/rus/vtkexport/vtkexport.html


 
Grey   (2004-06-01 01:31) [7]

Спасибо всем.
Особенно y-soft.
Библиотека очень пригодилась. Единственный ее недостаток - отсутствие поддержки графиков. Но пока она для меня подходит.



Страницы: 1 вся ветка

Текущий архив: 2004.06.13;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.043 c
3-1085124326
inic
2004-05-21 11:25
2004.06.13
Отмена SQL запроса


4-1083843987
kalishenko
2004-05-06 15:46
2004.06.13
Как узнать, завершился ли процесс или нет?


1-1086038890
Eagle
2004-06-01 01:28
2004.06.13
SetDecimalSeparator - текст процедуры


14-1085402763
sucer
2004-05-24 16:46
2004.06.13
Посмотрите что делает эта гадина INTEL


1-1085298589
Lessa
2004-05-23 11:49
2004.06.13
окошко программы поверх других окон