import java.io.File; |
import jxl.Workbook; |
import jxl.format.Border; |
import jxl.format.BorderLineStyle; |
import jxl.format.Colour; |
import jxl.write.Label; |
import jxl.write.WritableCellFormat; |
import jxl.write.WritableFont; |
import jxl.write.WritableSheet; |
import jxl.write.WritableWorkbook; |
/** |
* |
* @author XHW |
* |
* @date 2012-2-29 |
* |
*/ |
public class ExcelHandle { |
/** |
* @param args |
*/ |
public static void main(String[] args) { |
ExcelHandle excelHandle = new ExcelHandle(); |
excelHandle.writeExcel(); |
} |
/** |
* 写入Excel |
* |
*/ |
public void writeExcel() { |
try { |
// 写入到那个Excel文件 如:c:\\hello.xls,或者hello.xls(这个是在项目的根目录下) |
WritableWorkbook wwb = Workbook |
.createWorkbook( new File( "hello.xls" )); |
// 创建Excel工作表 指定名称和位置 |
WritableSheet ws = wwb.createSheet( "Test Sheet 1" , 0 ); |
// 设置表格的列宽度 |
ws.setColumnView( 0 , 14 ); // 第一列宽14 |
ws.setColumnView( 1 , 12 ); |
ws.setColumnView( 2 , 25 ); |
ws.setColumnView( 3 , 20 ); |
ws.setColumnView( 4 , 12 ); |
ws.setColumnView( 5 , 9 ); |
ws.setColumnView( 6 , 12 ); // 第7列宽12 |
// **************往工作表中添加数据***************** |
// 定义字体格式:字体为:微软雅黑,24号子,加粗 |
WritableFont titleFont = new WritableFont( |
WritableFont.createFont( "微软雅黑" ), 24 , WritableFont.NO_BOLD); |
WritableFont contentFont = new WritableFont( |
WritableFont.createFont( "楷体 _GB2312" ), 12 , |
WritableFont.NO_BOLD); |
WritableCellFormat titleFormat = new WritableCellFormat(titleFont); |
WritableCellFormat contentFormat = new WritableCellFormat( |
contentFont); |
WritableCellFormat contentFormat2 = new WritableCellFormat( |
contentFont); |
contentFormat.setBorder(Border.ALL, BorderLineStyle.THIN, |
Colour.BLACK); |
// 设置格式居中对齐 |
titleFormat.setAlignment(jxl.format.Alignment.CENTRE); |
contentFormat2.setAlignment(jxl.format.Alignment.CENTRE); |
// ***************将定义好的单元格添加到工作表中***************** |
ws.mergeCells( 0 , 0 , 6 , 0 ); // 合并单元格A-G共7列 |
ws.addCell( new Label( 0 , 0 , "广州XXX大学2009级研究生课程考试成绩册" , titleFormat)); |
ws.addCell( new Label( 0 , 1 , "课程名称" , contentFormat2)); |
ws.mergeCells( 1 , 1 , 6 , 1 ); // 合并单元格B-G共6列 |
ws.addCell( new Label( 1 , 1 , "大学数学" , contentFormat2)); |
ws.addCell( new Label( 0 , 2 , "院所教研室" , contentFormat2)); |
ws.mergeCells( 1 , 2 , 6 , 2 ); // 合并单元格B-G共6列 |
ws.addCell( new Label( 0 , 3 , "填表人" , contentFormat2)); |
ws.addCell( new Label( 2 , 3 , "教研室负责人" , contentFormat2)); |
String th[] = { "学号" , "姓名" , "学院" , "平时成绩" , "期末成绩" , "总成绩" , "补考成绩" }; |
for ( int i = 0 ; i < 7 ; i++) { |
ws.addCell( new Label(i, 4 , th[i], contentFormat2)); |
} |
// 这里我们可以从数据库里面查询数据,然后在这里获取数据 |
int xh = 200901 ; |
String xm = "王佳佳" ; |
String xy = "XXX信息技术学院" ; |
String space = " " ; |
int cj = 50 ; |
String bk = "补 80" ; |
// 向Excel中插入数据 |
for ( int j = 5 ; j < 10 ; j++) { |
ws.addCell( new Label( 0 , j, "" + xh + j + "" , contentFormat)); |
ws.addCell( new Label( 1 , j, xm + j, contentFormat)); |
ws.addCell( new Label( 2 , j, xy, contentFormat)); |
ws.addCell( new Label( 3 , j, space, contentFormat)); |
ws.addCell( new Label( 4 , j, space, contentFormat)); |
ws.addCell( new Label( 5 , j, "" + cj + j + "" , contentFormat)); |
ws.addCell( new Label( 6 , j, "" + bk + "" , contentFormat)); |
} |
// 写入工作表完毕,关闭流 |
wwb.write(); |
wwb.close(); |
} catch (Exception e) { |
e.printStackTrace(); |
} |
} |
} |