Java操作Excel方法详解,javaexcel详解,JAVA 通常有两种方法
分享于 点击 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(); } }}
用户点评