jxl 操作 excel

有时候我们会需要做excel的报表,下面这个例子详细的给出了读写及定义样式的方法。

jxl 操作 excel
package com.test;
jxl 操作 excel
jxl 操作 excel
import java.io.File;
jxl 操作 excel
import java.io.IOException;
jxl 操作 excel
jxl 操作 excel
import jxl.Cell;
jxl 操作 excel
import jxl.Sheet;
jxl 操作 excel
import jxl.Workbook;
jxl 操作 excel
import jxl.format.Border;
jxl 操作 excel
import jxl.format.BorderLineStyle;
jxl 操作 excel
import jxl.format.Colour;
jxl 操作 excel
import jxl.read.biff.BiffException;
jxl 操作 excel
import jxl.write.Label;
jxl 操作 excel
import jxl.write.WritableCellFormat;
jxl 操作 excel
import jxl.write.WritableFont;
jxl 操作 excel
import jxl.write.WritableSheet;
jxl 操作 excel
import jxl.write.WritableWorkbook;
jxl 操作 excel
import jxl.write.WriteException;
jxl 操作 excel
import jxl.write.biff.RowsExceededException;
jxl 操作 excel
jxl 操作 exceljxl 操作 excel
/***/ /**
jxl 操作 excel *
jxl 操作 excel *CopyRight(C)www.blogjava.net/ilovezmhAllrightsreserved.<p>
jxl 操作 excel *
jxl 操作 excel *WuHanInpointInformationTechnologyDevelopment,Inc.<p>
jxl 操作 excel *
jxl 操作 excel *Authorzhu<p>
jxl 操作 excel *
jxl 操作 excel *
@version 1.02007-2-6
jxl 操作 excel *
jxl 操作 excel *<p>Baseon:JDK1.5<p>
jxl 操作 excel *
jxl 操作 excel
*/

jxl 操作 excel
jxl 操作 exceljxl 操作 excel
public class JexcelSample ... {
jxl 操作 excel
jxl 操作 exceljxl 操作 excel
/***/ /**
jxl 操作 excel *写excel文件
jxl 操作 excel *
jxl 操作 excel
*/

jxl 操作 exceljxl 操作 excel
public void writeExc(Filefilename) ... {
jxl 操作 excel WritableWorkbookwwb
= null ;
jxl 操作 excel
try
jxl 操作 exceljxl 操作 excel
... {
jxl 操作 excel wwb
= Workbook.createWorkbook(filename);
jxl 操作 excel }

jxl 操作 exceljxl 操作 excel
catch (Exceptione) ... {
jxl 操作 excel e.printStackTrace();
jxl 操作 excel }

jxl 操作 excel
jxl 操作 excel
// 创建Excel工作表
jxl 操作 excel
WritableSheetws = wwb.createSheet( " 通讯录 " , 0 ); // 创建sheet
jxl 操作 exceljxl 操作 excel
try ... {
jxl 操作 excel ws.mergeCells(
0 , 0 , 2 , 1 ); // 合并单元格(左列,左行,右列,右行)从第1行第1列到第2行第3列
jxl 操作 excel
Labelheader = new Label( 0 , 0 , " 通讯录(191026班) " ,getHeader());
jxl 操作 excel ws.addCell(header);
// 写入头
jxl 操作 excel
Labell = new Label( 0 , 2 , " 姓名 " ,getTitle()); // 第3行
jxl 操作 excel
ws.addCell(l);
jxl 操作 excel l
= new Label( 1 , 2 , " 电话 " ,getTitle());
jxl 操作 excel ws.addCell(l);
jxl 操作 excel l
= new Label( 2 , 2 , " 地址 " ,getTitle());
jxl 操作 excel ws.addCell(l);
jxl 操作 excel l
= new Label( 0 , 3 , " 小祝 " ,getNormolCell()); // 第4行
jxl 操作 excel
ws.addCell(l);
jxl 操作 excel l
= new Label( 1 , 3 , " 1314***0974 " ,getNormolCell());
jxl 操作 excel ws.addCell(l);
jxl 操作 excel l
= new Label( 2 , 3 , " 武汉武昌 " ,getNormolCell());
jxl 操作 excel ws.addCell(l);
jxl 操作 excel l
= new Label( 0 , 4 , " 小施 " ,getNormolCell()); // 第5行
jxl 操作 excel
ws.addCell(l);
jxl 操作 excel l
= new Label( 1 , 4 , " 1347***5057 " ,getNormolCell());
jxl 操作 excel ws.addCell(l);
jxl 操作 excel l
= new Label( 2 , 4 , " 武汉武昌 " ,getNormolCell());
jxl 操作 excel ws.addCell(l);
jxl 操作 excel ws.setColumnView(
0 , 20 ); // 设置列宽
jxl 操作 excel
ws.setColumnView( 1 , 20 );
jxl 操作 excel ws.setColumnView(
2 , 40 );
jxl 操作 excel ws.setRowView(
0 , 400 ); // 设置行高
jxl 操作 excel
ws.setRowView( 1 , 400 );
jxl 操作 excel ws.setRowView(
2 , 500 );
jxl 操作 excel ws.setRowView(
3 , 500 );
jxl 操作 excel ws.setRowView(
4 , 500 );
jxl 操作 exceljxl 操作 excel }
catch (RowsExceededExceptione1) ... {
jxl 操作 excel e1.printStackTrace();
jxl 操作 exceljxl 操作 excel }
catch (WriteExceptione1) ... {
jxl 操作 excel e1.printStackTrace();
jxl 操作 excel }

jxl 操作 excel
jxl 操作 excel
// 输出流
jxl 操作 exceljxl 操作 excel
try ... {
jxl 操作 excel wwb.write();
jxl 操作 exceljxl 操作 excel }
catch (IOExceptionex) ... {
jxl 操作 excel
// TODO自动生成catch块
jxl 操作 excel
ex.printStackTrace();
jxl 操作 excel }

jxl 操作 excel
// 关闭流
jxl 操作 exceljxl 操作 excel
try ... {
jxl 操作 excel wwb.close();
jxl 操作 exceljxl 操作 excel }
catch (WriteExceptionex) ... {
jxl 操作 excel
// TODO自动生成catch块
jxl 操作 excel
ex.printStackTrace();
jxl 操作 exceljxl 操作 excel }
catch (IOExceptionex) ... {
jxl 操作 excel
// TODO自动生成catch块
jxl 操作 excel
ex.printStackTrace();
jxl 操作 excel }

jxl 操作 excel
// outStream.close();
jxl 操作 excel
System.out.println( " 写入成功! " );
jxl 操作 excel }

jxl 操作 excel
jxl 操作 exceljxl 操作 excel
public void readExc(Filefilename) throws BiffException,IOException ... {
jxl 操作 excel
jxl 操作 excel Workbookwb
= Workbook.getWorkbook(filename);
jxl 操作 excel Sheets
= wb.getSheet( 0 ); // 第1个sheet
jxl 操作 excel
Cellc = null ;
jxl 操作 excel
int row = s.getRows(); // 总行数
jxl 操作 excel
int col = s.getColumns(); // 总列数
jxl 操作 exceljxl 操作 excel
for ( int i = 0 ;i < row;i ++ ) ... {
jxl 操作 exceljxl 操作 excel
for ( int j = 0 ;j < col;j ++ ) ... {
jxl 操作 excel c
= s.getCell(j,i);
jxl 操作 excel System.out.print(c.getContents()
+ " " );
jxl 操作 excel }

jxl 操作 excel System.out.println();
jxl 操作 excel }

jxl 操作 excel }

jxl 操作 excel
jxl 操作 exceljxl 操作 excel
/***/ /**
jxl 操作 excel *设置头的样式
jxl 操作 excel *
@return
jxl 操作 excel
*/

jxl 操作 exceljxl 操作 excel
public static WritableCellFormatgetHeader() ... {
jxl 操作 excel WritableFontfont
= new WritableFont(WritableFont.TIMES, 24 ,WritableFont.BOLD); // 定义字体
jxl 操作 exceljxl 操作 excel
try ... {
jxl 操作 excel font.setColour(Colour.BLUE);
// 蓝色字体
jxl 操作 exceljxl 操作 excel
}
catch (WriteExceptione1) ... {
jxl 操作 excel
// TODO自动生成catch块
jxl 操作 excel
e1.printStackTrace();
jxl 操作 excel }

jxl 操作 excel WritableCellFormatformat
= new WritableCellFormat(font);
jxl 操作 exceljxl 操作 excel
try ... {
jxl 操作 excel format.setAlignment(jxl.format.Alignment.CENTRE);
// 左右居中
jxl 操作 excel
format.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE); // 上下居中
jxl 操作 excel
format.setBorder(Border.ALL,BorderLineStyle.THIN,Colour.BLACK); // 黑色边框
jxl 操作 excel
format.setBackground(Colour.YELLOW); // 黄色背景
jxl 操作 exceljxl 操作 excel
}
catch (WriteExceptione) ... {
jxl 操作 excel
// TODO自动生成catch块
jxl 操作 excel
e.printStackTrace();
jxl 操作 excel }

jxl 操作 excel
return format;
jxl 操作 excel }

jxl 操作 excel
jxl 操作 exceljxl 操作 excel
/***/ /**
jxl 操作 excel *设置标题样式
jxl 操作 excel *
@return
jxl 操作 excel
*/

jxl 操作 exceljxl 操作 excel
public static WritableCellFormatgetTitle() ... {
jxl 操作 excel WritableFontfont
= new WritableFont(WritableFont.TIMES, 14 );
jxl 操作 exceljxl 操作 excel
try ... {
jxl 操作 excel font.setColour(Colour.BLUE);
// 蓝色字体
jxl 操作 exceljxl 操作 excel
}
catch (WriteExceptione1) ... {
jxl 操作 excel
// TODO自动生成catch块
jxl 操作 excel
e1.printStackTrace();
jxl 操作 excel }

jxl 操作 excel WritableCellFormatformat
= new WritableCellFormat(font);
jxl 操作 excel
jxl 操作 exceljxl 操作 excel
try ... {
jxl 操作 excel format.setAlignment(jxl.format.Alignment.CENTRE);
jxl 操作 excel format.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
jxl 操作 excel format.setBorder(Border.ALL,BorderLineStyle.THIN,Colour.BLACK);
jxl 操作 exceljxl 操作 excel }
catch (WriteExceptione) ... {
jxl 操作 excel
// TODO自动生成catch块
jxl 操作 excel
e.printStackTrace();
jxl 操作 excel }

jxl 操作 excel
return format;
jxl 操作 excel }

jxl 操作 excel
jxl 操作 exceljxl 操作 excel
/***/ /**
jxl 操作 excel *设置其他单元格样式
jxl 操作 excel *
@return
jxl 操作 excel
*/

jxl 操作 exceljxl 操作 excel
public static WritableCellFormatgetNormolCell() ... { // 12号字体,上下左右居中,带黑色边框
jxl 操作 excel
WritableFontfont = new WritableFont(WritableFont.TIMES, 12 );
jxl 操作 excel WritableCellFormatformat
= new WritableCellFormat(font);
jxl 操作 exceljxl 操作 excel
try ... {
jxl 操作 excel format.setAlignment(jxl.format.Alignment.CENTRE);
jxl 操作 excel format.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
jxl 操作 excel format.setBorder(Border.ALL,BorderLineStyle.THIN,Colour.BLACK);
jxl 操作 exceljxl 操作 excel }
catch (WriteExceptione) ... {
jxl 操作 excel
// TODO自动生成catch块
jxl 操作 excel
e.printStackTrace();
jxl 操作 excel }

jxl 操作 excel
return format;
jxl 操作 excel }

jxl 操作 excel
jxl 操作 exceljxl 操作 excel
public static void main(String[]args) throws IOException,BiffException ... {
jxl 操作 excel JexcelSamplejs
= new JexcelSample();
jxl 操作 excel Filef
= new File( " D:\address.xls " );
jxl 操作 excel f.createNewFile();
jxl 操作 excel js.writeExc(f);
jxl 操作 excel js.readExc(f);
jxl 操作 excel }

jxl 操作 excel
jxl 操作 excel }

jxl 操作 excel
jxl 操作 excel 生成的excel表格如下:
jxl 操作 excel
jxl 操作 excel
jxl 操作 excel

jxl 操作 excel