欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Java操作Excel方法详解,javaexcel详解,JAVA 通常有两种方法

来源: javaer 分享于  点击 49627 次 点评:109

Java操作Excel方法详解,javaexcel详解,JAVA 通常有两种方法


JAVA 通常有两种方法来操作Excel,分别是POI和JExcelAPI,而且都是开源的。POI是Apace公司开发的,对中文的支持比较弱一些;而JExcelAPI是韩国公司开发的,不仅对中文的支持好,而且由于是纯JAVA编写的,所以可以跨平台操作。本文介绍的也是JExcelAPI的使用方法。

1、环境配置

如下网址,可以下载到API:http://www.andykhan.com/jexcelapi/download.html

下载完成的包解压之后,可以得到如下几个重要的文件:

1)jxl.jar —— JExcelAPI 函数库;

2)docs —— 帮助文档;

3)src —— 源码文件夹;

将jxl.jar复制到%JAVA_HOME%\jre\ext\文件夹下面,在CLASSPATH变量里面添加"%JAVA_HOME%\jre\ext",然后就可以调用JExcelAPI了。如果出现编译报错“找不到java.jxl包”,则可能是没有设置成功。这时,如果有Eclipse开发工具,可以在"Build Path"中添加"External Library",找到jxl.jar的路径,然后就能编译成功了。

2、Excel基础操作实例

创建Excel文件

  /**读取Excel文件的内容    * @param file  待读取的文件    * @return   // 生成Excel的类    */package createxls;import  java.io.File;   import  jxl.Workbook;   import  jxl.write.Label;   import  jxl.write.WritableSheet;   import  jxl.write.WritableWorkbook;   public   class  CreateXLS {       public   static   void  main(String args[])   {           try    {               //  打开文件                WritableWorkbook book  =  Workbook.createWorkbook( new  File( " test.xls " ));               //  生成名为“第一页”的工作表,参数0表示这是第一页                WritableSheet sheet  =  book.createSheet( " 第一页 " ,  0 );               //  在Label对象的构造子中指名单元格位置是第一列第一行(0,0)               //  以及单元格内容为test                Label label  =   new  Label( 0 ,  0 ,  " test " );               //  将定义好的单元格添加到工作表中                sheet.addCell(label);               //  写入数据并关闭文件                book.write();              book.close();          }   catch  (Exception e)   {              System.out.println(e);          }       }    }   

读Excel文件

package readxls;//读取Excel的类    import  java.io.File;   import  jxl.Cell;   import  jxl.Sheet;   import  jxl.Workbook;   public   class  ReadXLS   {       public   static   void  main(String args[])   {           try    {              Workbook book  =  Workbook.getWorkbook( new  File( " test.xls " ));               //  获得第一个工作表对象                Sheet sheet  =  book.getSheet( 0 );               //  得到第一列第一行的单元格                Cell cell1  =  sheet.getCell( 0 ,  0 );              String result  =  cell1.getContents();              System.out.println(result);              book.close();          }   catch  (Exception e)   {              //System.out.println(e);           e.printStackTrace();       }        }    }

合并单元格、格式化单元格等

//合并单元格并在单元格中输入内容

package additionalproperty;import java.io.*;import jxl.write.*;import jxl.*;public class MergeCells { public static void main(String [] args){  try{        WritableWorkbook book = Workbook.createWorkbook(new File("test.xls"));        WritableSheet sheet = book.createSheet("第一页", 0);        sheet.mergeCells(3, 3, 6, 6);  //合并单元格        //设置填充内容的格式        WritableFont font = new WritableFont(WritableFont.TIMES, 30, WritableFont.BOLD);        WritableCellFormat format = new WritableCellFormat(font);        format.setAlignment(jxl.format.Alignment.CENTRE);  //水平居中        format.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);  //垂直居中        format.setBackground(jxl.format.Colour.BLUE); //背景颜色和样式        format.setBorder(jxl.format.Border.ALL, jxl.format.BorderLineStyle.THICK);  //边框样式        Label label = new Label(3, 3, "合并", format); //添加内容        sheet.addCell(label);        book.write();        book.close();  }//end try      catch (Exception e){           e.printStackTrace();       }   }}

在excel中添加图片

JExcelAPI对图片的操作有限:它不能生成图表、图片和宏,但是复制工作表时,这些信息可以保留复制。而且当向工作表中添加图片时,只能支持PNG格式的图片。

//在工作表中添加图片package handleimage;import java.io.*;import jxl.*;import jxl.write.*;public class CreateImage { public static void main(String [] args){  try{       WritableWorkbook book = Workbook.createWorkbook(new File("test.xls"));       WritableSheet sheet = book.createSheet("第一页", 0);       WritableImage image = new WritableImage(3.5, 3.5, 4.3, 8.7,  //定义图片格式       new File("C:\\Documents and Settings\\Wei Li\\My Documents\\My Pictures\\Water lilies.PNG"));       sheet.addImage(image);  //添加图片       book.write();       book.close();      }//end try      catch (Exception e){ e.printStackTrace(); }   }}
相关栏目:

用户点评