当前位置导航:炫浪网>>网络学院>>编程开发>>JAVA教程>>Java进阶

在SWT中使用OLE操纵Excel(五)

    设置单元格的字体格式

    设置字体格式是常见的需求

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]-->

    比较简单,我就不进行解释了

相关内容
赞助商链接