Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Java и COM 
:(
    Опции темы
JDisel
Дата 22.2.2011, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 9.12.2010

Репутация: нет
Всего: нет



Уважаемые эксперты, такой вопрос. Поддерживает ли Ява технологию COM (Component Object Model), и если да, то как зарегистрировать такой COM объект в Яве?

Добавлено через 7 минут и 15 секунд
Кажется информация об этом как раз есть в соседней теме "импорт данных в Excel [?] " , не увидел сразу. Счас буду изучать.

Это сообщение отредактировал(а) JDisel - 22.2.2011, 09:30
PM MAIL   Вверх
JDisel
Дата 22.2.2011, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 9.12.2010

Репутация: нет
Всего: нет



Посмотрел , как создаются объекты Excel. Не совсем то, кажется. Тут , как я понял, используется специальная библиотека jxl. А если библиотеки J у приложения нет?
Объясню конкретно свою задачу. Есть такое приложение NiceLabel, в котором создаются этикетки для печати на принтере типа ZEBRA. На языке VFP9 я писал примерно такой код:
Код

oNLApp = CREATEOBJECT('NiceLabel.Application')

а дальше работал со всеми методами и свойствами NiceLabel, как с внутренним классом VFP. Т.е.:
Код

oNLApp.LabelOpen(cLabelPath)
oNLApp.LabelSetPrinter(lnLabelID, cPrinterName)

и т.д. 
Вот теперь хочу разобраться, как на Яве подкинуть этот объект в программу.

Добавлено через 7 минут и 11 секунд
Вообщем разговор сам с собой получается. smile  Полистал тут темы и нашел похожие, буду читать. Видимо там есть ответ на мой вопрос.

Добавлено через 8 минут и 37 секунд
вот эта ссылка доброго человека мне в помощь http://danadler.com/jacob/
PM MAIL   Вверх
AntonSaburov
Дата 22.2.2011, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 51
Всего: 118



Опс. Уже дали ссылку на JACOB - в принципе вполне приличный мост. Его достаточно.
PM MAIL WWW ICQ   Вверх
JDisel
Дата 24.2.2011, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 9.12.2010

Репутация: нет
Всего: нет



Подскажите еще вот что. Взял я пример из ссылки выше, предварительно скачав и подкинув библиотеку jacobBin_17:
Код

import com.jacob.com.*;
import com.jacob.activeX.*;


public class class1 {
    public static void main(String[] args) {
        ActiveXComponent xl = new ActiveXComponent("Excel.Application");
        Object xlo = xl.getObject();


        try {
          System.out.println("version="+xl.getProperty("Version"));
          System.out.println("version="+Dispatch.get(xlo, "Version"));
          xl.setProperty("Visible", new Variant(true));
          Object workbooks = xl.getProperty("Workbooks").toDispatch();
          Object workbook = Dispatch.get(workbooks,"Add").toDispatch();
          Object sheet = Dispatch.get(workbook,"ActiveSheet").toDispatch();
          Object a1 = Dispatch.invoke(sheet, "Range", Dispatch.Get,
                                      new Object[] {"A1"},
                                      new int[1]).toDispatch();
          Object a2 = Dispatch.invoke(sheet, "Range", Dispatch.Get,
                                      new Object[] {"A2"},
                                      new int[1]).toDispatch();
          Dispatch.put(a1, "Value", "123.456");
          Dispatch.put(a2, "Formula", "=A1*2");
          System.out.println("a1 from excel:"+Dispatch.get(a1, "Value"));
          System.out.println("a2 from excel:"+Dispatch.get(a2, "Value"));
          Variant f = new Variant(false);
          Dispatch.call(workbook, "Close", f);
        } catch (Exception e) {
          e.printStackTrace();
        } finally {
          xl.invoke("Quit", new Variant[] {});
        }
        
    }
}


так вот на строке  
Код

System.out.println("version="+xl.getProperty("Version"));
 
уже выскакивает исключение. Хотя если строки с get закоментировать, то срока:
Код

xl.setProperty("Visible", new Variant(true));

отрабатывает нормально. Что не так делаю?
на всякий случай текст исключения:
com.jacob.com.ComFailException: A COM exception has been encountered:
At Invoke of: Version
Description: An unknown COM error has occured.
    at com.jacob.com.Dispatch.invokev(Native Method)
    at com.jacob.activeX.ActiveXComponent.getProperty(ActiveXComponent.java)
    at class1.main(class1.java:25)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:613)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:115)

Это сообщение отредактировал(а) JDisel - 24.2.2011, 10:34
PM MAIL   Вверх
aleksandy
Дата 24.2.2011, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 260
Регистрация: 17.12.2006

Репутация: 4
Всего: 5



У меня все нормально отрабатывает. А какая версия офиса стоит? И версия jacob-а?
PM   Вверх
JDisel
Дата 24.2.2011, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 9.12.2010

Репутация: нет
Всего: нет



Версия офиса 2007, пробовал дома, там 2003 - одно и тоже: не работает. Версия Jacob 1.7  -как я понимаю. Среда разработки Intelli J Idea. Файл jacob.jar я подкинул в среду. Может нужно еще какие-то действия сделать? 
PM MAIL   Вверх
aleksandy
Дата 25.2.2011, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 260
Регистрация: 17.12.2006

Репутация: 4
Всего: 5



Цитата(JDisel @ 24.2.2011,  14:22)
Версия Jacob 1.7 - как я понимаю.

Если это правда, то скачай более свежий. Эта версия с 2003 точно работает, т.к. года 2 уже (со времен 1.14.3) печатаем {doc | xls}-файлы через него.
PM   Вверх
JDisel
Дата 25.2.2011, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 9.12.2010

Репутация: нет
Всего: нет



А подскажите еще , что такое jacob-1.14.3_src.zip  и для чего он нужен ?

Добавлено через 12 минут и 42 секунды
Да, с новой версией Якоба - заработало. Спасибо! Буду пробовать работать теперь  с этим делом
PM MAIL   Вверх
aleksandy
Дата 25.2.2011, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 260
Регистрация: 17.12.2006

Репутация: 4
Всего: 5



Цитата(JDisel @  25.2.2011,  11:10 Найти цитируемый пост)
что такое jacob-1.14.3_src.zip 

исходники jacob-а.

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0464 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.