知识大全 在SWT中使用OLE操纵Excel(四)

Posted

篇首语:一身转战三千里,一剑曾百万师。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 在SWT中使用OLE操纵Excel(四)相关的知识,希望对你有一定的参考价值。

在SWT中使用OLE操纵Excel(四)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  使单元格或列自动调整宽度

  在实际应用中 常常会遇到单元格的值比较长而被遮住 用户不得不手动调整宽度 如果能通过程序就自动调整宽度就会很方便了 实际上在通过OleView exe这个工具查询得知Range有AutoFit的方法 它的Id是 x ed 那么如果获得了Range的引用 只要调用AutoFit这个方法 就可以自动调整宽度了 下面请看代码与示例效果

  

  package jrkui example excel;

  import eclipse swt SWT;

  import eclipse swt layout FillLayout;

  import eclipse swt ole win OLE;

  import eclipse swt ole win OleAutomation;

  import eclipse swt ole win OleClientSite;

  import eclipse swt ole win OleFrame;

  import eclipse swt ole win Variant;

  import eclipse swt widgets Display;

  import eclipse swt widgets Shell;

  publicclass AutofitShell

  publicstaticvoid main(String[] args)

  new AutofitShell() open();

    

  publicvoid open()

  

  Display display = Display getDefault();

  Shell shell = new Shell();

  shell setText( Auto Fit );

  shell setSize( );

  shell setLayout(new FillLayout());

  

  createExcelPart(shell);

  

  shell open();

  while(!shell isDisposed())

  if(!display readAndDispatch())

  display sleep();

  display dispose();

  

  privatestaticfinalintSHEET_ID = x e ;

  privatestaticfinalintCELL_ID =  x c ;

  privatestaticfinalintCELL_VALUE_ID = x ;

  privatevoid 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_IDnew Variant[]new Variant( )) getAutomation();

  OleAutomation cellA = worksheet getProperty(CELL_IDnew Variant[]new Variant( A )) getAutomation();

  

  cellA setProperty(CELL_VALUE_IDnew Variant( if you don t fit the width of the cell you couldn t see all ));

  

  autoFitWidth(cellA );

  //      autoFitWidth(getColumnOfCell(cellA ));

  

  publicstaticfinalintAUTO_FIT_RANGE            = x ed;

  /**

  *自适应宽度

  *@paramautomation

  */

  privatevoid autoFitWidth(OleAutomation automation)

  

  //如果使用automation getProperty(AUTO_FIT_RANGE)也是同样的效果

  automation invoke(AUTO_FIT_RANGE);

  

  publicstaticfinalintCOLUMN_OF_CELL       = x f ;

  /**

  *获得单元格所在的列

  *@paramcell

  *@return

  */

  private OleAutomation getColumnOfCell(OleAutomation cell)

  

  return cell getProperty(COLUMN_OF_CELL) getAutomation();

  

  

  运行效果(自动调整A 单元格的宽度)

  

  运行效果(去掉createExcelPart()方法中的autoFitWidth(getColumnOfCell(cellA )) 的注释 自动调整A 单元格所在列的列宽)

  

  说明

  调整列宽在本例中是通过autoFitWidth(OleAutomation automation)方法

  在autoFitWidth(OleAutomation automation)中调用了OleAutomation的invoke()方法 参数是所代表ole对象的方法的id 意思是调用该方法 用 automation getProperty(AUTO_FIT_RANGE)也是同样的效果

  autoFitWidth(OleAutomation automation)的参数是一个Range对象 可以是一个单元格 也可以是一个单元格的区域 在本例中示范了两种效果(单元格 列)

cha138/Article/program/Java/hx/201311/25849

相关参考

知识大全 excel中复制一行数据,但是粘贴时需要在这行数据的每行插入四个空格,也就是隔四行粘贴一个数,怎么做呢

excel中复制一行数据,但是粘贴时需要在这行数据的每行插入四个空格,也就是隔四行粘贴一个数,怎么做呢假设数据在A列要粘贴到C列在C1中输入或复制粘贴下列公式之一=IF(MOD(ROW(A5),5)=

知识大全 在ASP中利用Oracle Object for OLE访问Oracle 8

在ASP中利用OracleObjectforOLE访问Oracle8  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快

知识大全 在Eclipse中使用SWT进行界面设计

在Eclipse中使用SWT进行界面设计  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  为什么要

知识大全 在Java中使用Draw2D和SWT绘图

在Java中使用Draw2D和SWT绘图  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  用Jav

知识大全 在PB中用OLE存取blob类型数据(一)

在PB中用OLE存取blob类型数据(一)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  前言 

知识大全 在PB中用OLE存取blob类型数据(二)

在PB中用OLE存取blob类型数据(二)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  处理b

知识大全 在PB中用OLE存取blob类型数据(三)

在PB中用OLE存取blob类型数据(三)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  源程序

知识大全 使用OLE对象访问Oracle数据库

使用OLE对象访问Oracle数据库  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  OLE即对象

知识大全 SWT事件

Eclipse开发经典教程:SWT事件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!在窗口系统中程

知识大全 在Java中操纵UDP

在Java中操纵UDP  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  什么是UDP协议  UDP