您的位置:首页 > 编程语言 > Java开发

使用java写入excel文件 --jxl

2014-05-05 21:04 447 查看
要操作excle文件,首先要下载jxl.jar文件,我用的版本是2.6。下载地址:http://www.andykhan.com/jexcelapi/download.html

Java Excel是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容、创建新的Excel文件、更新已经存在的Excel文件。使用该API非Windows操作系统也可以通过纯Java应用来处理Excel数据表。因为是使用Java编写的,所以我们在Web应用中可以通过JSP、Servlet来调用API实现对Excel数据表的访问。

1、建立一个xls文件

OutputStream os=new FileOutputStream("c:\\test.xls");

2、建立工作文件

WritableWorkbook wwb = Workbook.createWorkbook(os);

3、如果这个文件已经存在,那么我们可以在这个文件里面加入一个sheet为了和以前的数据进行分开;

jxl.write.WritableSheet ws = wwb.createSheet("Sheet 1", 0);

在createSheet方法里前面的参数是sheet名,后面是要操作的sheet号

4、写入数据

(1)最简单的字符型数据

Label label = new Label(0, 0, "This is a Label cell",wcfF);

ws.addCell(label);

在Label()方法里面有三个参数

第一个是代表列数,

第二是代表行数,

第三个代表要写入的内容

第四个是可选项,是输入这个label里面的样式

然后通过写sheet的方法addCell()把内容写进sheet里面。

字体样式:

WritableFont wf = new WritableFont(WritableFont.TIMES, 18, WritableFont.BOLD, true);

WritableFont()方法里参数说明:

这个方法算是一个容器,可以放进去好多属性

第一个: TIMES是字体大小,他写的是18

第二个: BOLD是判断是否为斜体,选择true时为斜体

第三个: ARIAL

第四个: UnderlineStyle.NO_UNDERLINE 下划线

第五个: jxl.format.Colour.RED 字体颜色是红色的

WritableCellFormat wcfF = new WritableCellFormat(wf);

(2)添加带有formatting的Number对象

NumberFormat nf = new NumberFormat("#.##");

(3)添加Number对象

(3.1)显示number对象数据的格式

NumberFormat nf = new NumberFormat("#.##");

WritableCellFormat wcfN = new WritableCellFormat(nf);

Number labelNF = new Number(1,1,3.1415926,wcfN);

ws.addCell(labelNF);

Number()方法参数说明:

前两上表示输入的位置

第三个表示输入的内容

(4)添加Boolean对象

Boolean labelB = new Boolean(0,2,false);

ws.addCell(labelB);

(5)添加DateTime对象

DateTime labelDT = new DateTime(0,3,new java.util.Date());

ws.addCell(labelDT);

DateTime()方法的参数说明

前两个表示输入的位置

第三个表示输入的当前时间

(6)添加带有formatting的DateFormat对象

这个显示当前时间的所有信息,包括年月日小时分秒

DateFormat df = new DateFormat("dd MM yyyy hh:mm:ss");

WritableCellFormat wcfDF = new WritableCellFormat(df);

DateTime labelDTF = new DateTime(1,3,new java.util.Date(),wcfDF);

ws.addCell(labelDTF);

(7)添加带有字体颜色Formatting的对象

WritableFont wfc = new WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false,UnderlineStyle.NO_UNDERLINE, Colour.RED);

WritableCellFormat wcfFC = new WritableCellFormat(wfc);

import="jxl.format.*

WritableFont wfc = new WritableFont(WritableFont.ARIAL,20,WritableFont.BOLD,false,UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.GREEN);

(8)设置单元格样式

WritableCellFormat wcfFC = new WritableCellFormat(wfc);

wcfFC.setBackGround(Colour.RED);//设置单元格的颜色为红色

wcfFC = new Label(6,0,"I love china",wcfFC);

最简单的程序示例:

/*

* Created on 2007-12-19

*

* To change the template for this generated file go to

* Window>Preferences>Java>Code Generation>Code and Comments

*/

package beans;

import java.io.*;

import java.util.Vector;

import javax.servlet.ServletException;

import net.iyun.util.LocaleConvert;

import jxl.*;

import jxl.write.*;

/**

* @author huyuxi

*

* To change the template for this generated type comment go to

* Window>Preferences>Java>Code Generation>Code and Comments

*/

public class GongdanExcel

{

public static void main(String args[]) throws FileNotFoundException, ServletException{

//调试地址,正式使用时放在服务器上

OutputStream os = new FileOutputStream("c:\\test.xls");

writeExcel(os);

}

/**

* 输出Excel

*

* @param os

*/

public static void writeExcel(OutputStream os) throws ServletException

{

try

{

/**

* 只能通过API提供的工厂方法来创建Workbook,而不能使用WritableWorkbook的构造函数,

* 因为类WritableWorkbook的构造函数为protected类型

* method(1)直接从目标文件中读取WritableWorkbook wwb = Workbook.createWorkbook(new File(targetfile));

* method(2)如下实例所示 将WritableWorkbook直接写入到输出流

*/

WritableWorkbook wwb = Workbook.createWorkbook(os);

//创建Excel工作表 指定名称和位置

WritableSheet ws = wwb.createSheet("test",0);

//**************往工作表中添加数据*****************

for(int i=0;i<10;i++){

for(int j=0;j<10;j++){

Label label = new Label(i,j,i+j);

ws.addCell(label);

}

}

//写入工作表

wwb.write();

wwb.close();

}

catch(Exception e)

{

throw new ServletException(e);

}

}

}

这样文件就生成了,想看的时候只需要下载到本地就可以了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: