Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.06.13;
Скачать: [xml.tar.bz2];

Вниз

Универсальный 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.058 c
1-1086166558
Unknown user
2004-06-02 12:55
2004.06.13
Закрашивание фона под текстом


4-1083737022
Olja
2004-05-05 10:03
2004.06.13
Звонок на городские номера


3-1085245603
GGREED
2004-05-22 21:06
2004.06.13
DBGrid(PickList)


1-1085660831
lamer
2004-05-27 16:27
2004.06.13
первое вхождение подстроки без применения POS


14-1085660205
Mad Dancer
2004-05-27 16:16
2004.06.13
По поводу Ace of Base





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский