日期:2011-01-26 02:54:00 来源:本站整理
<b>在SWT中操纵OLE操作Excel(三)</b>[Java编程]
本文“<b>在SWT中操纵OLE操作Excel(三)</b>[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
设置单元格后台色
package com.jrkui.example.excel; 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.widgets.Display; import org.eclipse.swt.widgets.Shell; public class ColorRangeShell { public static void main(String[] args) { new ColorRangeShell().open(); } public void open() { Display display = Display.getDefault(); Shell shell = new Shell(); shell.setText("Color Range Shell"); shell.setSize(400, 300); shell.setLayout(new FillLayout()); createExcelPart(shell); shell.open(); while(!shell.isDisposed()) if(!display.readAndDispatch()) display.sleep(); display.dispose(); } private static final int SHEET_ID = 0x000001e5; private static final int CELL_ID = 0x000000c5; private void createExcelPart(Shell shell) { OleFrame frame = new OleFrame(shell,SWT.NONE); OleClientSite clientSite = new OleClientSite(frame,SWT.NONE,"Excel.Sheet"); clientSite.doVerb(OLE.OLEIVERB_SHOW); OleAutomation workbook = new OleAutomation(clientSite); OleAutomation worksheet = workbook.getProperty(SHEET_ID, new Variant[]{new Variant(1)}).getAutomation(); //得到单元格 OleAutomation cellA1 = worksheet.getProperty(CELL_ID, new Variant[]{new Variant("A1")}).getAutomation(); OleAutomation cellD1 = worksheet.getProperty(CELL_ID, new Variant[]{new Variant("D1")}).getAutomation(); //得到单元格区域 OleAutomation areaA3D5 = worksheet.getProperty(CELL_ID,new Variant[]{new Variant("A3"),new Variant("D5")}).getAutomation(); colorRangeByRed(cellA1); colorRangeByRed(cellD1); colorRangeByRed(areaA3D5); } /** * 得到interior的办法在Range中的Id */ private static final int INTERIOR = 0x00000081; /** * 为ColorIndex赋值的办法在interior中的Id */ private static final int COLOR_INDEX = 0x00000061; /** * 红色在Excel的Index为3 */ private static final int RED = 3; /** * 用红色作为Range的后台色 * @param automation */ private void colorRangeByRed(OleAutomation automation) { //得到interior OleAutomation interior = automation.getProperty(INTERIOR).getAutomation(); //设置颜色 interior.setProperty(COLOR_INDEX, new Variant(RED)); } } |
运行效果:
原理: <!--[if !supportLists]-->ü <!--[endif]-->为Range设置后台色是通过Range的interior属性 <!--[if !supportLists]-->ü <!--[endif]-->interior也是一个对象,为它的ColorIndex属性赋值可设置其颜色 <!--[if !supportLists]-->ü <!--[endif]-->Excel里的颜色设置是通过其序列号设定的(不是通RGB),红色的index是3.得到全部颜色的index的办法还没找到,可以一个个试,从0开始的整数. |
以上是“<b>在SWT中操纵OLE操作Excel(三)</b>[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论