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 APIimport java.io.File;
Java操作Excel文件基础--Java Excel API
import java.io.FileOutputStream;
Java操作Excel文件基础--Java Excel API
import java.io.OutputStream;
Java操作Excel文件基础--Java Excel API
Java操作Excel文件基础--Java Excel API
import jxl.Workbook;
Java操作Excel文件基础--Java Excel API
import jxl.format.Alignment;
Java操作Excel文件基础--Java Excel API
import jxl.format.VerticalAlignment;
Java操作Excel文件基础--Java Excel API
import jxl.write.Label;
Java操作Excel文件基础--Java Excel API
import jxl.write.Number;
Java操作Excel文件基础--Java Excel API
import jxl.write.WritableCellFormat;
Java操作Excel文件基础--Java Excel API
import jxl.write.WritableFont;
Java操作Excel文件基础--Java Excel API
import jxl.write.WritableSheet;
Java操作Excel文件基础--Java Excel API
import jxl.write.WritableWorkbook;
Java操作Excel文件基础--Java Excel API
Java操作Excel文件基础--Java Excel APIJava操作Excel文件基础--Java Excel API
public class ExcelHandler ...{
Java操作Excel文件基础--Java Excel API    
private OutputStream reportOS;
Java操作Excel文件基础--Java Excel API    
//表头的字体格式,字体、大小和样式
Java操作Excel文件基础--Java Excel API
    private final static WritableFont HEADER_FONT_STYLE = new WritableFont(
Java操作Excel文件基础--Java Excel API            WritableFont.TIMES, 
12, WritableFont.BOLD);
Java操作Excel文件基础--Java Excel API    
//内容的字体格式
Java操作Excel文件基础--Java Excel API
    private final static WritableCellFormat BODY_FONT_STYLE = new WritableCellFormat(
Java操作Excel文件基础--Java Excel API            
new WritableFont(WritableFont.TIMES,
Java操作Excel文件基础--Java Excel API                    WritableFont.DEFAULT_POINT_SIZE));
Java操作Excel文件基础--Java Excel API
Java操作Excel文件基础--Java Excel APIJava操作Excel文件基础--Java Excel API    
public ExcelHandler(String filePath) ...{
Java操作Excel文件基础--Java Excel APIJava操作Excel文件基础--Java Excel API        
try ...{
Java操作Excel文件基础--Java Excel API            File file 
= new File(filePath);
Java操作Excel文件基础--Java Excel APIJava操作Excel文件基础--Java Excel API            
if (!file.exists()) ...{
Java操作Excel文件基础--Java Excel API                file.createNewFile();
Java操作Excel文件基础--Java Excel API            }

Java操作Excel文件基础--Java Excel API            
this.reportOS = new FileOutputStream(filePath);
Java操作Excel文件基础--Java Excel APIJava操作Excel文件基础--Java Excel API        }
 catch (Exception e) ...{
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    
public void getExcelReport() ...{
Java操作Excel文件基础--Java Excel APIJava操作Excel文件基础--Java Excel API        
try ...{
Java操作Excel文件基础--Java Excel API            
//创建WorkBook
Java操作Excel文件基础--Java Excel API
            WritableWorkbook workBook = Workbook.createWorkbook(this.reportOS);
Java操作Excel文件基础--Java Excel API            
//创建Sheet(工作表)
Java操作Excel文件基础--Java Excel API
            WritableSheet sheet = 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 API            reportOS.close();
Java操作Excel文件基础--Java Excel APIJava操作Excel文件基础--Java Excel API        }
 catch (Exception e) ...{
Java操作Excel文件基础--Java Excel API            e.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    
private void writeReportHeader(WritableSheet sheet) ...{
Java操作Excel文件基础--Java Excel APIJava操作Excel文件基础--Java Excel API        
try ...{
Java操作Excel文件基础--Java Excel API            
//创建表头的单元格格式
Java操作Excel文件基础--Java Excel API
            WritableCellFormat headerFormat = new WritableCellFormat(
Java操作Excel文件基础--Java Excel API                    HEADER_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
            Label seqLabel = new Label(00"序号", 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(0001);
Java操作Excel文件基础--Java Excel API            
//设置单元格宽度,以字符为单位
Java操作Excel文件基础--Java Excel API
            sheet.setColumnView(0"序号".length() + 10);
Java操作Excel文件基础--Java Excel API
Java操作Excel文件基础--Java Excel API            Label basicInfoLabel 
= new Label(10"基本信息", headerFormat);
Java操作Excel文件基础--Java Excel API            sheet.addCell(basicInfoLabel);
Java操作Excel文件基础--Java Excel API            sheet.mergeCells(
1030);
Java操作Excel文件基础--Java Excel API
Java操作Excel文件基础--Java Excel API            Label nameLabel 
= new Label(11"姓名", headerFormat);
Java操作Excel文件基础--Java Excel API            sheet.addCell(nameLabel);
Java操作Excel文件基础--Java Excel API            sheet.setColumnView(
0"姓名".length() + 10);
Java操作Excel文件基础--Java Excel API
Java操作Excel文件基础--Java Excel API            Label ageLabel 
= new Label(21"年龄", headerFormat);
Java操作Excel文件基础--Java Excel API            sheet.addCell(ageLabel);
Java操作Excel文件基础--Java Excel API            sheet.setColumnView(
0"年龄".length() + 10);
Java操作Excel文件基础--Java Excel API
Java操作Excel文件基础--Java Excel API            Label heightLabel 
= new Label(31"身高", headerFormat);
Java操作Excel文件基础--Java Excel API            sheet.addCell(heightLabel);
Java操作Excel文件基础--Java Excel API            sheet.setColumnView(
0"身高".length() + 10);
Java操作Excel文件基础--Java Excel API            
Java操作Excel文件基础--Java Excel API            
Java操作Excel文件基础--Java Excel APIJava操作Excel文件基础--Java Excel API        }
 catch (Exception e) ...{
Java操作Excel文件基础--Java Excel API            e.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    
private void writeReportBody(WritableSheet sheet) ...{
Java操作Excel文件基础--Java Excel APIJava操作Excel文件基础--Java Excel API        
try ...{
Java操作Excel文件基础--Java Excel API            
//单元格内容位数字
Java操作Excel文件基础--Java Excel API
            Number seq = new Number(02, Double
Java操作Excel文件基础--Java Excel API                    .parseDouble(
"0"));
Java操作Excel文件基础--Java Excel API            sheet.addCell(seq);
Java操作Excel文件基础--Java Excel API
Java操作Excel文件基础--Java Excel API            Label label 
= new Label(12"张三", BODY_FONT_STYLE);
Java操作Excel文件基础--Java Excel API            sheet.addCell(label);
Java操作Excel文件基础--Java Excel API            
Java操作Excel文件基础--Java Excel API            Number age 
= new Number(22, Double
Java操作Excel文件基础--Java Excel API                    .parseDouble(
"18"));
Java操作Excel文件基础--Java Excel API            sheet.addCell(age);
Java操作Excel文件基础--Java Excel API            
Java操作Excel文件基础--Java Excel API            Number height 
= new Number(32, Double
Java操作Excel文件基础--Java Excel API                    .parseDouble(
"183"));
Java操作Excel文件基础--Java Excel API            sheet.addCell(height);
Java操作Excel文件基础--Java Excel API
Java操作Excel文件基础--Java Excel APIJava操作Excel文件基础--Java Excel API        }
 catch (Exception e) ...{
Java操作Excel文件基础--Java Excel API            e.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    
public static void main(String[] args) ...{
Java操作Excel文件基础--Java Excel API        ExcelHandler handler 
= new ExcelHandler("c:/test.xls");
Java操作Excel文件基础--Java Excel API        handler.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
上一篇:用HOOK来修改API函数的功能(3)-禁止删除文件


下一篇:设计模式面试突击