Java操作Excel方法详解

  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基础操作实例

        (1)  创建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);   
       }    
   }    
}   

 

(2)读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();
       }    
    }    
}


 

(3)合并单元格、格式化单元格等


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

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();
       }
   }
}

 

(4)添加图片

     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(); }
   }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值