`
botan1314
  • 浏览: 24720 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

JAVA中的JXL操作Excel

    博客分类:
  • java
阅读更多

 

jxl  是一个韩国人写的 java 操作 excel 的工具 在开源世界中,有两套比较有影响的 API 可供使用,一个是 POI ,一个是 jExcelAPI 其中功能相对 POI 比较弱一点。但 jExcelAPI 对中文支持非常好, API 是纯 Java 的,   并不依赖 Windows 系统,即使运行在 Linux 下, 它同样能够正确的处理 Excel 文件。   另外需要说明的是,这套 API 对图形和图表的支持很有限,而且仅仅识别 PNG 格式。
使用如下:
搭建环境
 
将下载后的文件解包,得到 jxl.jar ,放入 classpath ,安装就完成了。

 
基本操作
   
创建文件

   
读取文件

   
修改文件
 
      利用 jExcelAPI 可以修改已有的 Excel 文件,修改 Excel 文件的时候,除了打开文件的方式不同之外,
   
其他操作和创建 Excel 是一样的。


其他操作
 
一、   数据格式化
 
Excel 中不涉及复杂的数据类型,能够比较好的处理字串、数字和日期已经能够满足一般的应用。
 1
  字串格式化
 
字符串的格式化涉及到的是字体、粗细、字号等元素,这些功能主要由 WritableFont
 WritableCellFormat
类来负责。假设我们在生成一个含有字串的单元格时,使用如下语句,
 
为方便叙述,我们为每一行命令加了编号:
WritableFont font1 =
  new  WritableFont(WritableFont.TIMES, 16 ,WritableFont.BOLD); 


 WritableCellFormat format1 = new  WritableCellFormat(font1); 


 Label label = new  Label( 0 , 0 ,”data  4  test”,format1) 


  
其中 指定了字串格式:字体为 TIMES ,字号 16 ,加粗显示。 WritableFont 有非常丰富的
 
构造子,供不同情况下使用, jExcelAPI java-doc 中有详细列表,这里不再列出。

 
处代码使用了 WritableCellFormat 类,这个类非常重要,通过它可以指定单元格的各种
 
属性,后面的单元格格式化中会有更多描述。

 
处使用了 Label 类的构造子,指定了字串被赋予那种格式。

 
WritableCellFormat 类中,还有一个很重要的方法是指定数据的对齐方式,比如针对我们
 
上面的实例,可以指定:
  // 
把水平对齐方式指定为居中
 format1.setAlignment(jxl.format.Alignment.CENTRE);

  // 
把垂直对齐方式指定为居中
 format1.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);

二、单元格操作

 Excel
中很重要的一部分是对单元格的操作,比如行高、列宽、单元格合并等,所幸 jExcelAPI
 
提供了这些支持。这些操作相对比较简单,下面只介绍一下相关的 API

 1
  合并单元格
 WritableSheet.mergeCells( int  m, int  n, int  p, int  q); 

  // 
作用是从 (m,n) (p,q) 的单元格全部合并,比如:
 WritableSheet sheet = book.createSheet(“
第一页 ”, 0 );

  // 
合并第一列第一行到第六列第一行的所有单元格
 sheet.mergeCells( 0 , 0 , 5 , 0 );

 
合并既可以是横向的,也可以是纵向的。合并后的单元格不能再次进行合并,否则会触发异常。

 2
  行高和列宽
 WritableSheet.setRowView( int  i, int  height);

  // 
作用是指定第 i+1 行的高度,比如:

  // 
将第一行的高度设为 200
 sheet.setRowView( 0 , 200 );

 WritableSheet.setColumnView( int  i, int  width);

  // 
作用是指定第 i+1 列的宽度,比如:

  // 
将第一列的宽度设为 30
 sheet.setColumnView( 0 , 30 );

 jExcelAPI
还有其他的一些功能,比如插入图片等,这里就不再一一介绍,读者可以自己探索。

其中:如果读一个 excel ,需要知道它有多少行和多少列,如下操作:
Workbook book  =  Workbook.getWorkbook( new  File( " 
测试 1.xls " ));
         //  
获得第一个工作表对象
        Sheet sheet  =  book.getSheet( 0 );
         //  
得到第一列第一行的单元格
         int  columnum  =  sheet.getColumns(); //  
得到列数
         int  rownum  =  sheet.getRows(); //  
得到行数
        System.out.println(columnum);
        System.out.println(rownum);
         for  ( int  i  =   0 ; i  <  rownum; i ++ ) //  
循环进行读写
         {
             for  ( int  j  =   0 ; j  <  columnum; j ++ )  {
                Cell cell1  =  sheet.getCell(j, i);
                String result  =  cell1.getContents();
                System.out.print(result);
                System.out.print( " \t " );
            }
            System.out.println();
        }
        book.close();

 

附录几个例子,供参考学习!

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics