1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Office einbetten

  • hucskfjs
  • 20. Juli 2011 um 21:58
  • Unerledigt
  • hucskfjs
    8
    hucskfjs
    Mitglied
    Punkte
    575
    Beiträge
    80
    • 20. Juli 2011 um 21:58
    • #1

    ich versuche mittels swt ms office (in meinem fall zur zeit v2007) einzubetten. in diesem zuge möchte ich natürlich die dokumente auch verarbeiten können. wie teile ich dem office programm über die OleClientSite mit, zu speichern bzw. den druckdialog aufzurufen? :confused:

    Code
    public class OleContainer extends java.awt.Container
    {
        private org.eclipse.swt.widgets.Display display;
        private org.eclipse.swt.widgets.Shell swtParent;
        private java.awt.Canvas awtParent;
        private org.eclipse.swt.ole.win32.OleClientSite site;
    
        public OleContainer(final String oleAppId, final java.io.File file, final int width, final int height)
        {
            Thread thread = new Thread(new Runnable()
            {
                public void run()
                {
                    final int swtStyle = org.eclipse.swt.SWT.None;
    
                    setLayout(new java.awt.GridLayout(1,1));
                    awtParent = new java.awt.Canvas();
                    add(awtParent);
                    display = new org.eclipse.swt.widgets.Display();
                    swtParent = org.eclipse.swt.awt.SWT_AWT.new_Shell(display,awtParent);
                    swtParent.setLayout(new org.eclipse.swt.layout.FillLayout());
                    org.eclipse.swt.ole.win32.OleFrame frame = new org.eclipse.swt.ole.win32.OleFrame(swtParent,swtStyle);
    
                    try
                    {
                        if(file!=null && file.exists() && oleAppId==null)
                            site = new org.eclipse.swt.ole.win32.OleClientSite(frame,swtStyle,file);
                        else if(file!=null && file.exists())
                            site = new org.eclipse.swt.ole.win32.OleClientSite(frame,swtStyle,oleAppId,file);
                        else
                            site = new org.eclipse.swt.ole.win32.OleClientSite(frame,swtStyle,oleAppId);
                    }
                    catch(org.eclipse.swt.SWTException e)
                    {
                        System.err.println("Create OleClientSite Error: " + e.toString());
                        return;
                    }
                    setSize(width,height);
                    validate();
                    site.doVerb(org.eclipse.swt.ole.win32.OLE.OLEIVERB_SHOW);
    
                    while(swtParent!=null && !swtParent.isDisposed())
                        if(!display.readAndDispatch())
                            display.sleep();
                }
            });
            thread.start();
        }
    Alles anzeigen

    ps: mittels save(java.io.File,boolean) habe ich es bereits probiert, aber anscheindend funktioniert das nicht solange das dokument noch geöffnet ist und auch sonst werden änderungen anscheinend nicht übernommen.

    danke im vorhinein :)
    lg hucskjs

  • g0bl1n
    4
    g0bl1n
    Mitglied
    Reaktionen
    1
    Punkte
    121
    Beiträge
    21
    • 26. Juli 2011 um 15:23
    • #2

    tja ... da dir hier scheinbar keiner hilft geb ich mal meinen (hilflosen) Senf dazu.
    Java ist nicht dafür gedacht mit MS-office verknüpft zu werden :grinning_face_with_smiling_eyes: java soll auf möglichst vielen system immer gleich laufen. wie viele systeme glaubst du verwenden MS office? mein Vorschlag: umstieg auf eine MS-Sprache ... c# .net what ever. Da bekommst du sicher bessere Schnittstellen und Unterstützung.

    solltest dus in der Zwischenzeit geschafft habe, würde mich deine lösung aber interessieren :winking_face: .. ich sag ja nicht das es nicht geht, sondern nur das es vermutlich unnötig kompliziert ist

  • hucskfjs
    8
    hucskfjs
    Mitglied
    Punkte
    575
    Beiträge
    80
    • 26. Juli 2011 um 17:51
    • #3
    Zitat von g0bl1n

    tja ... da dir hier scheinbar keiner hilft geb ich mal meinen (hilflosen) Senf dazu.


    danke xD

    Zitat von g0bl1n

    Java ist nicht dafür gedacht mit MS-office verknüpft zu werden :grinning_face_with_smiling_eyes: java soll auf möglichst vielen system immer gleich laufen. wie viele systeme glaubst du verwenden MS office? mein Vorschlag: umstieg auf eine MS-Sprache ... c# .net what ever. Da bekommst du sicher bessere Schnittstellen und Unterstützung.


    naja windows und mac, aber in erster linie soll das programm sowieso nur mein eigenes leben erleichtern und braucht eigentlich vorerst nur auf meinem rechner laufen und für diese kleine app möchte ich nicht unbedingt eine neue sprache lernen :face_with_tongue:

    Zitat von g0bl1n

    solltest dus in der Zwischenzeit geschafft habe, würde mich deine lösung aber interessieren :winking_face: .. ich sag ja nicht das es nicht geht, sondern nur das es vermutlich unnötig kompliziert ist


    ich weiß, dass es möglich ist, denn ich habe es bereits einmal gesehen (ohne fremde hilfe wäre ich nicht in der lage gewesen, diesen swt code zusammenzubasteln). und so kompliziert war das ganze auch nicht. wie man an den paketen der verwendeten klassen sieht, ist das ganze ja schon auf windows hingedreht :)

    Code
    org.eclipse.swt.ole.[B]win32[/B].*

    da das nun geklärt wäre, wäre ich froh falls sich doch noch jemand mit einer idee meldet...

  • Maximilian Rupp 27. Dezember 2024 um 00:26

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Tags

  • eclipse
  • swt
  • microsoft office
  • ole

Rechtliches

Impressum

Datenschutzerklärung