Hallo,
ich bin zur Zeit dabei in meiner Java Anwendung Excel in meine Anwendung per OLE / ActiveX zu integrieren.
Ich nutzen als Entwicklungsumgebung WinXP / Eclipse / SWT / Office 97 bzw. 2003. Ich bekomme auch ein Excel Tabellenblatt angezeigt, nur leider sind die Zellen und die Scrollbalken nicht korrekt sichtbar bzw. fehlen ganz. Dies triff auch auf die Kopfzeilen und Spalten zu.
Habt ihr mit SWT und Ole Erfahrungen gesammlt? Habt ihr Excel direkt einbinden können?
Mein Source Code...
ich bin zur Zeit dabei in meiner Java Anwendung Excel in meine Anwendung per OLE / ActiveX zu integrieren.
Ich nutzen als Entwicklungsumgebung WinXP / Eclipse / SWT / Office 97 bzw. 2003. Ich bekomme auch ein Excel Tabellenblatt angezeigt, nur leider sind die Zellen und die Scrollbalken nicht korrekt sichtbar bzw. fehlen ganz. Dies triff auch auf die Kopfzeilen und Spalten zu.
Habt ihr mit SWT und Ole Erfahrungen gesammlt? Habt ihr Excel direkt einbinden können?
Mein Source Code...
Code:
import java.io.File;
import org.eclipse.swt.*;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.ole.win32.OLE;
import org.eclipse.swt.ole.win32.OleAutomation;
import org.eclipse.swt.ole.win32.OleClientSite;
import org.eclipse.swt.ole.win32.OleFrame;
import org.eclipse.swt.widgets.*;
public class CExcelViewer {
private Shell shell = null;
private Display display = null;
private OleFrame frame = null;
private OleClientSite site = null;
private OleAutomation auto = null;
private FillLayout layout = null;
public void InitUI(){
File f = new File("c:\\test.xls");
// Init der Variablen!
display = new Display();
shell = new Shell(display);
layout = new FillLayout();
layout.marginHeight=3;
layout.marginWidth=3;
shell.setLayout(layout);
frame = new OleFrame(shell, SWT.NONE);
site = new OleClientSite(frame, SWT.NONE, f);
// site = new OleClientSite(frame, SWT.NONE, "Excel.Sheet");
shell.layout();
auto = new OleAutomation(site);
shell.setText("Excel Viewer");
this.SetMenuBar();
frame.setVisible(true);
shell.setSize(1024, 768);
site.setSize(shell.getSize());
boolean result = true;
result = (site.doVerb(OLE.OLEIVERB_SHOW) == OLE.S_OK);
System.out.println("Aktiv:\t"+result);
frame.setSize(150, 150);
shell.open();
// Display anzeigen.
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
public void SetMenuBar() {
Menu menubar = new Menu(shell, SWT.BAR);
shell.setMenuBar(menubar);
MenuItem mItemDatei = new MenuItem(menubar, SWT.CASCADE);
mItemDatei.setText("Datei1");
Menu sItemDateiNeu = new Menu(shell, SWT.DROP_DOWN);
mItemDatei.setMenu(sItemDateiNeu);
MenuItem mItemBearbeiten = new MenuItem(menubar, SWT.CASCADE);
mItemBearbeiten.setText("Bearbeiten");
}
}