当前位置:七道奇文章资讯编程技术Java编程
日期: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(
400300);
        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编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .