jxl.jar是通过java操作excel表格的工具类库,JAVA开发过程中难免会涉及到Excel数据的导入和导出功能,导出功能就是把数据写入Excel的功能,导入功能就是文件上传然后读取Excel的功能。本实验讲解Excel数据的导入和导出功能.其他常用的导出功能有POI、JS以及设置Http响应头的方式。
实验效果图:
1、写入Excel(导出数据到Excel)
private static void jxlCreateXls() {
try {
// 打开文件,创建一个工作薄,就是整个Excel文档
WritableWorkbook book = Workbook.createWorkbook(new File("测试.xls"));
// 生成名为“第一页”的工作表,参数0表示这是第一页,创建一个工作表
WritableSheet sheet = book.createSheet("StudentInfo", 0);
// 合并第一列第一行到第四列第一行的所有单元格
sheet.mergeCells(0, 0, 3, 0);
//设置第一行第一列格式
WritableFont font1 = new WritableFont(WritableFont.TIMES, 16,WritableFont.BOLD);
WritableCellFormat format1 = new WritableCellFormat(font1);
// 把水平对齐方式指定为居中
format1.setAlignment(jxl.format.Alignment.CENTRE);
// 把垂直对齐方式指定为居中
format1.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
format1.setBackground(Colour.GOLD);
Label label1 = new Label(0, 0, "学生基本信息表");
label1.setCellFormat(format1);
sheet.addCell(label1);
//设置表格每一列的Label标题
format1 = new WritableCellFormat(new WritableFont(WritableFont.TIMES,12, WritableFont.BOLD));
label1 = new Label(0, 1, "Id",format1);
Label label2 = new Label(1, 1, "name",format1);
Label label3 = new Label(2, 1, "age",format1);
Label label4 = new Label(3, 1, "address",format1);
// 将定义好的单元格添加到工作表中
sheet.addCell(label1);
sheet.addCell(label2);
sheet.addCell(label3);
sheet.addCell(label4);
//设置表格内容,正式环境可以使用for循环写入
label1 = new Label(0, 2, "001");
label2 = new Label(1, 2, "张三");
label3 = new Label(2, 2, "24");
label4 = new Label(3, 2, "广东深圳");
// 将定义好的单元格添加到工作表中
sheet.addCell(label1);
sheet.addCell(label2);
sheet.addCell(label3);
sheet.addCell(label4);
// 写入数据并关闭文件
book.write();
book.close();
System.out.println("-------OK-----");
} catch (Exception e) {
e.printStackTrace();
}
}
2、读取Excel数据
private static void jxlReadXls() {
try
{
Workbook book=
Workbook.getWorkbook(new File("测试.xls"));
//获得第一个工作表对象
Sheet sheet=book.getSheet(0);
//得到第一列第一行的单元格
Cell cell1=sheet.getCell(0,0);
String result=cell1.getContents();
System.out.println("得到第一列第一行的单元格:"+result);
int rows = sheet.getRows();
int cols = sheet.getColumns();
System.out.println("rows="+rows+" ,cols="+cols);
for (int i = 1; i < rows; i++) {
for (int k = 0;k < cols-1; k++) {
cell1=sheet.getCell(k,i);
result=cell1.getContents();
System.out.print(result +" ");
}
System.out.println();
}
book.close();
}catch(Exception e)
{
e.printStackTrace();
}
}