重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
罗马不是一天建成的,要写好工具类必须要有扎实的功底和丰富的经验。
创新互联从2013年成立,先为任县等服务建站,任县等地企业,进行企业商务咨询服务。为任县企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
写工具类首先要考虑工具类得功能,要能满足基本的要求,但又不能有过多使用次数不高的方法。其次,要考虑工具类得通用性及易用性,工具类的使用方法不能太复杂。最后,不能以工具类为中心来写程序,即所写程序不能为了使用工具类而放弃它本来的结构和方法,而是应该考虑是不是可以写一个更好的工具类来提供程序使用。
工具类必须经过很多次的修改最终才能成为想要的工具类。
JAVA 通常有两种方法来操作Excel,分别是POI和JExcelAPI,而且都是开源的。POI是Apace公司开发的,对中文的支持比较弱一些;而JExcelAPI是韩国公司开发的,不仅对中文的支持好,而且由于是纯JAVA编写的,所以可以跨平台操作。本文介绍的也是JExcelAPI的使用方法。
1、环境配置
如下网址,可以下载到API:
下载完成的包解压之后,可以得到如下几个重要的文件:
(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(); }
}
}
提交的时候用SimpleDateFormat类转换格式:
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
sdf.format(要转换的Date类型对象);
注意format里面的参数一定是Date类型的,如果不是请先用sdf.parse(字符串类型值);转换好后在format也行。