设置单元格的字体格式
设置字体格式是常见的需求
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 FontStyleShell { public static void main(String[] args) { new FontStyleShell().open(); } public void open() { Display display = Display.getDefault(); Shell shell = new Shell(); shell.setText("Font Style"); 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 static final int CELL_VALUE_ID = 0x00000006; 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 cellA3 = worksheet.getProperty(CELL_ID,new Variant[]{new Variant("A3")}).getAutomation(); cellA3.setProperty(CELL_VALUE_ID, new Variant("Hello OLE!")); setFontStyle(cellA3); } private static final int FONT_SIZE = 0x00000068; private static final int FONT_NAME = 0x0000006e; private static final int COLOR_INDEX = 0x00000061; private static final int FONT = 0x00000092; private static final int BOLD = 0x00000060; private static final int RED = 3; private void setFontStyle(OleAutomation cell) { OleAutomation font = cell.getProperty(FONT).getAutomation();//获得单元格的font对象 font.setProperty(FONT_SIZE, new Variant(32));//大小 font.setProperty(FONT_NAME, new Variant("Arial Black"));//使用Arial Black的字体 font.setProperty(BOLD, new Variant(true));//粗体 font.setProperty(COLOR_INDEX, new Variant(RED));//颜色 } }
运行效果:
<!--[if !vml]-->
<!--[endif]-->
比较简单,我就不进行解释了