package com.tencent.test.qqdriver.demo;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.ole.win32.OLE;
import org.eclipse.swt.ole.win32.OleClientSite;
import org.eclipse.swt.ole.win32.OleFrame;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.Shell;
public class ExcelShell {
public static void main(String[] args) {
new ExcelShell().open();
}
public void open() {
Display display = Display.getDefault();
Shell shell = new Shell();
shell.setSize(600, 400);
shell.setText("ExcelWindow");
shell.setLayout(new FillLayout());
// 显示Excel的菜单栏
shell.setMenuBar(new Menu(shell, SWT.BAR));
createExcelPart(shell);
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.close();
}
/**
* 使Excel嵌入到shell中
*
* @paramshell
*/
private void createExcelPart(Shell shell) {
// OleFrame实际上是一个Composite,用于放置OLE控件
OleFrame oleFrame = new OleFrame(shell, SWT.NONE);
// OleClientSite提供一个场所用于把OLE对象嵌入到容器中,在这里“Excel.Sheet”表示的OLE对象是Excel
OleClientSite clientSite = new OleClientSite(oleFrame, SWT.NONE,
"Excel.Sheet");
// OleClientSite在显示OLE对象时所做的动作,这里的动作是OLEIVERB_SHOW,表示显示
clientSite.doVerb(OLE.OLEIVERB_SHOW);
}
}
SWT中操作Excel
最新推荐文章于 2022-07-18 10:40:22 发布