Obsługa plików MS Office w Qt

0

Cześć, bawiłem się ostatnio w obsługę arkuszy excela i dokumentow word w C++ Builderze za pomocą obiektów OLE. Chciałbym przesiąść się na Qt. Jak tam wygląda obsługa takich plików? Potrzebne mi będą jakieś bibliloteki zewnętrzne? Mógłby ktoś jakieś polecić, najlepiej takie, które są dość intuicyjne?

2

zacznij od dokumentacji qt
https://wiki.qt.io/Handling_Microsoft_Excel_file_format
są linki do libek.

0

Czy jakikolwiek dialekt C++ jest do tego najlepszym jezykiem ... wątpię (a robiłem kiedyś)

0

Potrzebny będzie... zainstalowany MS Office na każdym komputerze, na którym będzie Twój program. Office dodaje obiekty COM lub COM+, osobno do Worda, osobno do Excela itd. Z tego, możesz korzystać w dowolnym IDE lub dialekcie, w którym można wywoływać bezpośrednio funkcje WinAPI.

Za pomocą WinAPI lub ActiveX można wywoływać funkcje zarejestrowanych obiektów COM (każdy obiekt ma numer GUID, a obiekt ma kilka klas i interfejsów, gdzie każdy z nich ma swój numer GUID).

Nie wiem, jak można wykorzystywać obiekty COM w C++, ale z tego, co wiem, metody w interfejsach obiektów do Office mają funkcjonalność i składnię bardzo zbliżoną do VBA, czyli wystarczy nagrać makro i przejrzeć utworzony kod.

0
andrzejlisek napisał(a):

Potrzebny będzie... zainstalowany MS Office na każdym komputerze, na którym będzie Twój program. Office dodaje obiekty COM lub COM+, osobno do Worda, osobno do Excela itd. Z tego, możesz korzystać w dowolnym IDE lub dialekcie, w którym można wywoływać bezpośrednio funkcje WinAPI.

Nie ma z tym problemu. Korzystałem z C++ Buildera i tam za pomocą obiektów OLE najpierw otwierałem w tle arkusz Excela, wyszukiwałem potrzebne dane, kopiowałem do tablicy i wypluwałem do tabeli Word odpowiednio sformatowane dane. Tak może pozostać. Ale tak szczerze to była droga przez mękę. Nie znalazłem żadnej dokumentacji w internecie, a przykłady, z których korzystałem znajdowały się na ruskich stronach co po wrzuceniu w translatora było częściowo zrozumiałe.
Chciałbym przesiąść się na coś bardziej aktualnego jak na te czasy czyli Qt, gdyż C++ Builder 6 to nieco leciwe narzędzie. Właściwie to przymierzam się do czegoś takiego:
zrzucam dane z excela do bazy danych za pomocą SQLite, żeby to było nieco praktyczniejsze. Tworzę wniosek w Wordzie na podstawie danych z bazy.
Wnioskuję, że w moim przypadku najpraktyczniejszym rozwiązaniem będzie użycie Qt's ActiveX framework. Idę dobrym tropem?

0

Możesz tak robić tylko po skoro masz bazę sqlite.
Popatrz na to tak w kwestii qt:

  1. wniosek to po prostu template gdzie z bazy wczytasz dane
  2. takie dane można zapisać do OpenDocument Format https://doc.qt.io/qt-5/qtextdocumentwriter.html

Ba Qt ci nawet nie potrzebne a po prostu libki które ogarną odczyt z sqlite(qt też to potrafi swoją drogą ale nie tylko on), i coś co zapisze do formatu microsoft albo ODF(bo mso też je czyta).
https://github.com/amiremohamadi/DuckX
https://github.com/opendocument-app/OpenDocument.core
widzę że jednak oprócz qt ubogo w kwestii zapisu do ODT ale są jakieś pythonowe libki co można by

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