Java操作Excel文件基础--Java Excel API

Java Excel API是一个成熟的、开源的Java API,主页地址:http://jexcelapi.sourceforge.net/,通过它开发人员可以动态地读取、写入或者修改Excel文件。利用这些APIJava开发人员,可以非常轻松地完成Excel读取、写入和修改,并且可以把改动写入到任何输出流中(如磁盘、HTTP、socket和数据库等等)。由于Java Excel API是完全由Java编写的,所以它可以运行在任何可以运行Java虚拟机的操作系统上。它主要的特性包括:
1、读取操作支持的Excel版本包括95、97、2000、XP和2003
2、公式的读取和编写(支持97及以后版本)
3、支持字体、数字和日期的格式化
4、图形复制
5、支持单元格的阴影、边框和颜色的设置
6、国际化
7、支持图片的插入和复制
……
上面的列举的只是一部分功能,更多的介绍可以参考其主页上的说明。
下面通过一个示例介绍读、写和合并单元格的基本操作:

Java操作Excel文件基础--Java Excel APIimportjava.io.File;
Java操作Excel文件基础--Java Excel API
importjava.io.FileOutputStream;
Java操作Excel文件基础--Java Excel API
importjava.io.OutputStream;
Java操作Excel文件基础--Java Excel API
Java操作Excel文件基础--Java Excel API
importjxl.Workbook;
Java操作Excel文件基础--Java Excel API
importjxl.format.Alignment;
Java操作Excel文件基础--Java Excel API
importjxl.format.VerticalAlignment;
Java操作Excel文件基础--Java Excel API
importjxl.write.Label;
Java操作Excel文件基础--Java Excel API
importjxl.write.Number;
Java操作Excel文件基础--Java Excel API
importjxl.write.WritableCellFormat;
Java操作Excel文件基础--Java Excel API
importjxl.write.WritableFont;
Java操作Excel文件基础--Java Excel API
importjxl.write.WritableSheet;
Java操作Excel文件基础--Java Excel API
importjxl.write.WritableWorkbook;
Java操作Excel文件基础--Java Excel API
Java操作Excel文件基础--Java Excel APIJava操作Excel文件基础--Java Excel API
publicclassExcelHandler...{
Java操作Excel文件基础--Java Excel API
privateOutputStreamreportOS;
Java操作Excel文件基础--Java Excel API
//表头的字体格式,字体、大小和样式
Java操作Excel文件基础--Java Excel API
privatefinalstaticWritableFontHEADER_FONT_STYLE=newWritableFont(
Java操作Excel文件基础--Java Excel APIWritableFont.TIMES,
12,WritableFont.BOLD);
Java操作Excel文件基础--Java Excel API
//内容的字体格式
Java操作Excel文件基础--Java Excel API
privatefinalstaticWritableCellFormatBODY_FONT_STYLE=newWritableCellFormat(
Java操作Excel文件基础--Java Excel API
newWritableFont(WritableFont.TIMES,
Java操作Excel文件基础--Java Excel APIWritableFont.DEFAULT_POINT_SIZE));
Java操作Excel文件基础--Java Excel API
Java操作Excel文件基础--Java Excel APIJava操作Excel文件基础--Java Excel API
publicExcelHandler(StringfilePath)...{
Java操作Excel文件基础--Java Excel APIJava操作Excel文件基础--Java Excel API
try...{
Java操作Excel文件基础--Java Excel APIFilefile
=newFile(filePath);
Java操作Excel文件基础--Java Excel APIJava操作Excel文件基础--Java Excel API
if(!file.exists())...{
Java操作Excel文件基础--Java Excel APIfile.createNewFile();
Java操作Excel文件基础--Java Excel API}

Java操作Excel文件基础--Java Excel API
this.reportOS=newFileOutputStream(filePath);
Java操作Excel文件基础--Java Excel APIJava操作Excel文件基础--Java Excel API}
catch(Exceptione)...{
Java操作Excel文件基础--Java Excel API
Java操作Excel文件基础--Java Excel API}

Java操作Excel文件基础--Java Excel API}

Java操作Excel文件基础--Java Excel API
Java操作Excel文件基础--Java Excel APIJava操作Excel文件基础--Java Excel API
publicvoidgetExcelReport()...{
Java操作Excel文件基础--Java Excel APIJava操作Excel文件基础--Java Excel API
try...{
Java操作Excel文件基础--Java Excel API
//创建WorkBook
Java操作Excel文件基础--Java Excel API
WritableWorkbookworkBook=Workbook.createWorkbook(this.reportOS);
Java操作Excel文件基础--Java Excel API
//创建Sheet(工作表)
Java操作Excel文件基础--Java Excel API
WritableSheetsheet=workBook.createSheet("report",0);
Java操作Excel文件基础--Java Excel API
Java操作Excel文件基础--Java Excel API
//写表头
Java操作Excel文件基础--Java Excel API
writeReportHeader(sheet);
Java操作Excel文件基础--Java Excel API
//写内容
Java操作Excel文件基础--Java Excel API
writeReportBody(sheet);
Java操作Excel文件基础--Java Excel API
Java操作Excel文件基础--Java Excel API
//写入内容
Java操作Excel文件基础--Java Excel API
workBook.write();
Java操作Excel文件基础--Java Excel API
//关闭
Java操作Excel文件基础--Java Excel API
workBook.close();
Java操作Excel文件基础--Java Excel API
Java操作Excel文件基础--Java Excel APIreportOS.close();
Java操作Excel文件基础--Java Excel APIJava操作Excel文件基础--Java Excel API}
catch(Exceptione)...{
Java操作Excel文件基础--Java Excel APIe.printStackTrace();
Java操作Excel文件基础--Java Excel API}

Java操作Excel文件基础--Java Excel API}

Java操作Excel文件基础--Java Excel API
Java操作Excel文件基础--Java Excel APIJava操作Excel文件基础--Java Excel API
privatevoidwriteReportHeader(WritableSheetsheet)...{
Java操作Excel文件基础--Java Excel APIJava操作Excel文件基础--Java Excel API
try...{
Java操作Excel文件基础--Java Excel API
//创建表头的单元格格式
Java操作Excel文件基础--Java Excel API
WritableCellFormatheaderFormat=newWritableCellFormat(
Java操作Excel文件基础--Java Excel APIHEADER_FONT_STYLE);
Java操作Excel文件基础--Java Excel API
//水平居中对齐
Java操作Excel文件基础--Java Excel API
headerFormat.setAlignment(Alignment.CENTRE);
Java操作Excel文件基础--Java Excel API
//竖直方向居中对齐
Java操作Excel文件基础--Java Excel API
headerFormat.setVerticalAlignment(VerticalAlignment.CENTRE);
Java操作Excel文件基础--Java Excel API
Java操作Excel文件基础--Java Excel API
//建立标签,参数依次为:列索引、行索引、内容、格式
Java操作Excel文件基础--Java Excel API
LabelseqLabel=newLabel(0,0,"序号",headerFormat);
Java操作Excel文件基础--Java Excel API
//增加单元格
Java操作Excel文件基础--Java Excel API
sheet.addCell(seqLabel);
Java操作Excel文件基础--Java Excel API
//合并单元格,参数依次为:列索引、行索引、列索引+需要合并的列的个数、行索引+需要合并的行的个数
Java操作Excel文件基础--Java Excel API
sheet.mergeCells(0,0,0,1);
Java操作Excel文件基础--Java Excel API
//设置单元格宽度,以字符为单位
Java操作Excel文件基础--Java Excel API
sheet.setColumnView(0,"序号".length()+10);
Java操作Excel文件基础--Java Excel API
Java操作Excel文件基础--Java Excel APILabelbasicInfoLabel
=newLabel(1,0,"基本信息",headerFormat);
Java操作Excel文件基础--Java Excel APIsheet.addCell(basicInfoLabel);
Java操作Excel文件基础--Java Excel APIsheet.mergeCells(
1,0,3,0);
Java操作Excel文件基础--Java Excel API
Java操作Excel文件基础--Java Excel APILabelnameLabel
=newLabel(1,1,"姓名",headerFormat);
Java操作Excel文件基础--Java Excel APIsheet.addCell(nameLabel);
Java操作Excel文件基础--Java Excel APIsheet.setColumnView(
0,"姓名".length()+10);
Java操作Excel文件基础--Java Excel API
Java操作Excel文件基础--Java Excel APILabelageLabel
=newLabel(2,1,"年龄",headerFormat);
Java操作Excel文件基础--Java Excel APIsheet.addCell(ageLabel);
Java操作Excel文件基础--Java Excel APIsheet.setColumnView(
0,"年龄".length()+10);
Java操作Excel文件基础--Java Excel API
Java操作Excel文件基础--Java Excel APILabelheightLabel
=newLabel(3,1,"身高",headerFormat);
Java操作Excel文件基础--Java Excel APIsheet.addCell(heightLabel);
Java操作Excel文件基础--Java Excel APIsheet.setColumnView(
0,"身高".length()+10);
Java操作Excel文件基础--Java Excel API
Java操作Excel文件基础--Java Excel API
Java操作Excel文件基础--Java Excel APIJava操作Excel文件基础--Java Excel API}
catch(Exceptione)...{
Java操作Excel文件基础--Java Excel APIe.printStackTrace();
Java操作Excel文件基础--Java Excel API}

Java操作Excel文件基础--Java Excel API}

Java操作Excel文件基础--Java Excel API
Java操作Excel文件基础--Java Excel APIJava操作Excel文件基础--Java Excel API
privatevoidwriteReportBody(WritableSheetsheet)...{
Java操作Excel文件基础--Java Excel APIJava操作Excel文件基础--Java Excel API
try...{
Java操作Excel文件基础--Java Excel API
//单元格内容位数字
Java操作Excel文件基础--Java Excel API
Numberseq=newNumber(0,2,Double
Java操作Excel文件基础--Java Excel API.parseDouble(
"0"));
Java操作Excel文件基础--Java Excel APIsheet.addCell(seq);
Java操作Excel文件基础--Java Excel API
Java操作Excel文件基础--Java Excel APILabellabel
=newLabel(1,2,"张三",BODY_FONT_STYLE);
Java操作Excel文件基础--Java Excel APIsheet.addCell(label);
Java操作Excel文件基础--Java Excel API
Java操作Excel文件基础--Java Excel APINumberage
=newNumber(2,2,Double
Java操作Excel文件基础--Java Excel API.parseDouble(
"18"));
Java操作Excel文件基础--Java Excel APIsheet.addCell(age);
Java操作Excel文件基础--Java Excel API
Java操作Excel文件基础--Java Excel APINumberheight
=newNumber(3,2,Double
Java操作Excel文件基础--Java Excel API.parseDouble(
"183"));
Java操作Excel文件基础--Java Excel APIsheet.addCell(height);
Java操作Excel文件基础--Java Excel API
Java操作Excel文件基础--Java Excel APIJava操作Excel文件基础--Java Excel API}
catch(Exceptione)...{
Java操作Excel文件基础--Java Excel APIe.printStackTrace();
Java操作Excel文件基础--Java Excel API}

Java操作Excel文件基础--Java Excel API}

Java操作Excel文件基础--Java Excel API
Java操作Excel文件基础--Java Excel APIJava操作Excel文件基础--Java Excel API
publicstaticvoidmain(String[]args)...{
Java操作Excel文件基础--Java Excel APIExcelHandlerhandler
=newExcelHandler("c:/test.xls");
Java操作Excel文件基础--Java Excel APIhandler.getExcelReport();
Java操作Excel文件基础--Java Excel API}

Java操作Excel文件基础--Java Excel API
Java操作Excel文件基础--Java Excel API}

Java操作Excel文件基础--Java Excel API
下面是运行结果:
Java操作Excel文件基础--Java Excel API