在SWT中使用OLE操作Excel(二):为Excel的A1单元格赋值 - 编程入门网
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-06-16
在SWT中使用OLE操作Excel(二):为Excel的A1单元格赋值时间:2011-07-06代码: packagecom.jrkui.example.excel; import java.io.File;import org.eclipse.swt.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.ole.win32.Variant;import org.eclipse.swt.program.Program;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("Excel Window"); 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中 * @param shell */ 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"); setValueForA1Cell(clientSite); //OleClientSite在显示OLE对象时所做的动作,这里的动作是OLEIVERB_SHOW,显示 clientSite.doVerb(OLE.OLEIVERB_SHOW); } /** * Sheet的Id */ private static final int SHEET_ID = 0x000001e5; /** * 单元格的Id */ private static final int CELL_ID = 0x000000c5; /** * 单元格值的Id */ private static final int CELL_VALUE_ID = 0x00000006; /** * 为第一个Sheet页的A1单元格赋值 * @param clientSite */ private void setValueForA1Cell(OleClientSite clientSite) { //获得Excel的workbook对象 OleAutomation workbook = new OleAutomation(clientSite); //获得workbook的第一个Sheet页 OleAutomation sheet = workbook.getProperty(SHEET_ID,new Variant[]{new Variant(1)}).getAutomation(); //获得Sheet页的A1单元格 Variant cellA1Variant = sheet.getProperty(CELL_ID, new Variant[]{new Variant("A1")}); OleAutomation cellA1 = cellA1Variant.getAutomation(); //为A1单元格赋值 cellA1.setProperty(CELL_VALUE_ID, new Variant("Hello OLE!")); //获得A1单元格的值并输出到控制台上 System.out.println(cellA1Variant.getString()); }} 在SWT中使用OLE操作Excel(二):为Excel的A1单元格赋值(2)时间:2011-07-06显示效果: 控制台输出:Hello OLE! 解释: 原理: 使用SWT进行OLE操作时,所有的对OLE对象的引 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于在SWT中使用OLE操作Excel(二):为Excel的A1单元格赋值 - 编程入门网的所有评论