Bardzo nietypowa sprawa z Javą i excelem

0

Jestem tutaj nowy zatem witam wszystkich,

Piszę tutaj bo mam dość nietypowy problem który postaram się naświetlić, a więc:

  • Posiadam kody które pisałem w VBA gotowych, działających makr do excela.
  • Pisze właśnie aplikację w Javie - uzywając eclipse'a.

Problem polega na tym że chcę z poziomu języka Java... utworzyć plik "test.xlsm" a następnie w tym pliku utworzyć
makra które mają zawierać kod VBA.

Dla mnie to nowe rozwiązanie... możliwe że ktoś z bardziej doświadczonych użytkowników i programistów powie mi jak można to zrobić - chciałbym zaznaczyć że obiektówki się dopiero uczę.

PS: Dodam tylko że na innych forach nikt nie odpowiedział mi na to pytanie

1

Apache POI nie potrafi tworzyć exceli z makrami ( http://poi.apache.org/spreadsheet/limitations.html ) więc mam wątpliwości czy jest biblioteka która to umożliwia.

0

Szukałem w sieci... i nic nie znalazłem właśnie dlatego pomyślałem że ktoś tutaj da mi wskazówkę jak to zrobić... inaczej.

1

Dwie opcje. Pierwsza próba rozczajenia jak działa COM4J, czyli taka biblioteka do łączenia MS-owych kontrolek COM z Javą. Druga to przygotowanie sobie na boku szablonu makra i tworzenie nowej karty na bazie takiej szablonowej.

0
Koziołek napisał(a):

Dwie opcje. Pierwsza próba rozczajenia jak działa COM4J, czyli taka biblioteka do łączenia MS-owych kontrolek COM z Javą. Druga to przygotowanie sobie na boku szablonu makra i tworzenie nowej karty na bazie takiej szablonowej.

Mógłbyś mi przybliżyć tę druga opcję... proszę.

1

Tworzysz samodzielnie arkusz Excela zawierający makra, ale muszą być napisane generycznie, czyli jak najbardziej ogólnie. Następnie za pomocą POI kopiujesz arkusz do własciwego pliku i wypełniasz go danymi.

1

Stosuję metodę Koziołka i mogę potwierdzić, że działa.
Wprawdzie POI nie pozwala na dodawanie makr, ale jeżeli są już jakieś makra w arkuszu, to ich nie usuwa.

Ważne jest to, aby arkusz z makrami nie był zmieniany przez POI. Wszystkie dane wejściowe muszą być drugim, generowanym arkuszu.

Po otwarciu pliku użytkownik musi uruchomić makra (jest do tego jakiś skrót klawiszowy).

0

Dzięki za odpowiedzi. Czy mogę jeszcze zapytać w jaki sposób można rozwiązać sprawę dokumentów "wzorcowych" ŻEBY dostęp do nich był możliwy tylko po wybraniu odpowiedniej opcji w programie?

Np. w programie klikamy "dokument1" i w wyniku tego działania dokument excel'a kopiowany jest np. na pulpit i od razu uruchamiane macro.

1

Problem polega na tym, że taki dokument nie różni się niczym od zwykłego excela i raczej nie przeskoczysz tego problemu na tym poziomie. Można by się pobawić za pomocą uprawnień do plików tzn. po utworzeniu dokumentu odebrać użytkownikowi prawo odczytu. To jednak nie tutaj...

1 użytkowników online, w tym zalogowanych: 0, gości: 1