在SWT中使用OLE操作Excel(三)——设置单元格背景色 - 编程入门网
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-06-16
在SWT中使用OLE操作Excel(三)——设置单元格背景色时间:2011-07-06packagecom.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)); }} 在SWT中使用OLE操作Excel(三)——设置单元格背景色(2)时间:2011-07-06运行效果: 原理: 为Range设置背景色是通过Range的interior属性 interior也是一个对象,为它的ColorIndex属性赋值可设置其颜色 Excel里的颜色设置是通过其序列号设定的(不是通过RGB),红色的index是3。获得所有颜色的index的方法还没找到,可以一个个试,从0开始的整数。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于在SWT中使用OLE操作Excel(三)——设置单元格背景色 - 编程入门网的所有评论