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

Java-------写入excel

2014-04-17 11:53 337 查看
前面写了记录了一篇读取 Java-------读取excel

现在记录写入

首先下载包


java excel api

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

/**生成一个Excel文件
* @param fileName  要生成的Excel文件名
*/
public static void writeExcel(String[][] content,String city){
WritableWorkbook wwb = null;
try {
//首先要使用Workbook类的工厂方法创建一个可写入的工作薄(Workbook)对象

wwb = Workbook.createWorkbook(new File("e:\\land.xls"));
} catch (IOException e) {
e.printStackTrace();
}
if(wwb!=null){
//创建一个可写入的工作表
//Workbook的createSheet方法有两个参数,第一个是工作表的名称,第二个是工作表在工作薄中的位置
WritableSheet ws = wwb.createSheet(city,1);

//下面开始添加单元格
for(int row=0;row<content.length;row++){
System.out.println(row);
for(int j=0;j<content[row].length;j++){
//这里需要注意的是,在Excel中,第一个参数表示列,第二个表示行
Label labelC = new Label(j, row,content[row][j]);

try {
//将生成的单元格添加到工作表中
ws.addCell(labelC);
} catch (RowsExceededException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
}
}
}

try {
//从内存中写入文件中
wwb.write();
//关闭资源,释放内存
wwb.close();
} catch (IOException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
}
}
}


 

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

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

ws.addCell(label); 

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

第一个是代表列数, 

第二是代表行数, 

第三个代表要写入的内容 

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

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

 

字体样式:

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

WritableFont()方法里参数说明: 

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

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

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

第三个: ARIAL 

第四个: UnderlineStyle.NO_UNDERLINE 下划线 

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

 

WritableCellFormat wcfF = newWritableCellFormat(wf);

 

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

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

 

(3)添加Number对象

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

 

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

WritableCellFormat wcfN = newWritableCellFormat(nf);

 

Number labelNF = newNumber(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,newjava.util.Date());

ws.addCell(labelDT);

DateTime()方法的参数说明

前两个表示输入的位置

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

 

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

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

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

WritableCellFormat wcfDF = newWritableCellFormat(df);

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

ws.addCell(labelDTF);

 

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

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

WritableCellFormat wcfFC = newWritableCellFormat(wfc);

 

import="jxl.format.*

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

 

(8)设置单元格样式

 

WritableCellFormat wcfFC = newWritableCellFormat(wfc);

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

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

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: