使用jxl.jar生成excel表格,例子中有合并单元格,指定标题样式,字体等信息;
package com.email.jav;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import jxl.Workbook;
import jxl.format.UnderlineStyle;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableHyperlink;
import jxl.write.WritableImage;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;
public class TestExl {
public static void main(String args[]) throws IOException,
RowsExceededException, WriteException {
WritableWorkbook book = Workbook.createWorkbook(new File("f://aa.xls")); // 第一步
/**
* 定义与设置Sheet
*/
WritableSheet sheet = book.createSheet("sheet", 0); // 创建Sheet
sheet.setColumnView(0, 30); // 设置列的宽度
sheet.setColumnView(1, 30); // 设置列的宽度
sheet.setColumnView(2, 30); // 设置列的宽度
sheet.setRowView(6, 1000); // 设置行的高度
sheet.setRowView(4, 1000); // 设置行的高度
sheet.setRowView(5, 1000); // 设置行的高度
/**
* 定义单元格样式
*/
WritableFont wf = new WritableFont(WritableFont.ARIAL, 15,
WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE,
jxl.format.Colour.CORAL); // 定义格式 字体 下划线 斜体 粗体 颜色
WritableCellFormat wcf = new WritableCellFormat(wf); // 单元格定义
wcf.setBackground(jxl.format.Colour.BLACK); // 设置单元格的背景颜色
wcf.setAlignment(jxl.format.Alignment.CENTRE); // 设置对齐方式
/**
* 使用样式的单元格
*/
sheet.addCell(new Label(0, 0, "邮箱asasasasa", wcf)); // 普通的带有定义格式的单元格
sheet.addCell(new Label(1, 0, "动作asasasasa", wcf));
sheet.addCell(new Label(2, 0, "时间asasasasa", wcf));
sheet.addCell(new Label(0, 1, "qhcgx@sina.com"));
sheet.addCell(new Label(1, 1, "action"));
sheet.addCell(new Label(2, 1, "time"));
/**
* excel合并单元格
*/
sheet.addCell(new Label(4, 0, "合并单元格", wcf)); // 合并单元格
sheet.addCell(new Label(4, 1, "测试1"));
sheet.addCell(new Label(5, 1, "测试2"));
sheet.addCell(new Label(6, 1, "测试3"));
sheet.mergeCells(4, 0, 6, 0); // 合并单元格
/**
* excel图片
*/
sheet.addCell(new Label(0, 3, "展示图片 jxl只支持png格式的", wcf)); // 展示图片标题
sheet.mergeCells(0, 3, 3, 3); // 合并图片标题单元格
File file = new File("f://1.png"); // 获得图片
WritableImage image = new WritableImage(0, 4, 3, 3, file); // 设置图片显示位置
// 4,4代表图片的高和宽占4个单元格
sheet.addImage(image); // 加载图片
/**
* excel链接
*/
sheet.addCell(new Label(0, 8, "excel链接测试", wcf)); // 链接标题
sheet.mergeCells(0, 8, 2, 8);
WritableHyperlink link = new WritableHyperlink(0, 9, new URL(
"http://www.google.com"));
link.setDescription("链接使用 链接到Google");
sheet.mergeCells(0, 9, 1, 9);
sheet.addHyperlink(link);
book.write();
book.close();
}
}
简单的excel导出
public class ExcelExport {
public static void main(String[] args) {
try {
//创建文件
WritableWorkbook book = Workbook.createWorkbook(new File("d:/测试excel.xls"));
//创建第一个表格,命名为"第一章",此处0表示第一个表格
WritableSheet sheet = book.createSheet("第一章", 0);
//创建第一行,第一列,表格内的内容为"测试数据"
Label label = new Label(0, 0, "测试数据");
//将这个单元格加入到第一张表格中
sheet.addCell(label);
//创建第二行,第一列,表格中为数字(数字模式最好使用Number类型的单元格)
Number number = new Number(1, 0, 789.123);
//将单元格加入到第一章表格中
sheet.addCell(number);
//将所有的数据写入目标Excel中
book.write();
//关闭资源
book.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
public class ExcleExport2 {
public static void main(String[] args) {
try {
//创建一个Excle文件
WritableWorkbook book = Workbook.createWorkbook(new File("d:/测试.xls"));
//创建第一个Sheet
WritableSheet ws = book.createSheet("First", 0);
//设置字体容器(参数属性)
//第一个:字体 ,WritableFont.TIMES
//第二个:大小,18
//第三个: 是否为粗体,WritableFont.BOLD 或WritableFont.NO_BOLD
//第四个: 判断是否为斜体,选择true时为斜体
//第五个: 样式,UnderlineStyle.NO_UNDERLINE 没有下划线
//第六个: 颜色,jxl.format.Colour.RED 字体颜色是红色的
WritableFont wf = new jxl.write.WritableFont(WritableFont.TIMES, 18,
WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE, Colour.RED);
//创建格式化对象实例
//可以传递字体参数或者不传递
WritableCellFormat format = new WritableCellFormat(wf);
//垂直居中
format.setVerticalAlignment(VerticalAlignment.CENTRE);
//水平居中
format.setAlignment(Alignment.CENTRE);
//单元格背景颜色
format.setBackground(Colour.YELLOW);
//设置单元格边框
format.setBorder(Border.TOP, BorderLineStyle.THIN);
format.setBorder(Border.BOTTOM, BorderLineStyle.THIN);
format.setBorder(Border.LEFT, BorderLineStyle.THIN);
format.setBorder(Border.RIGHT, BorderLineStyle.THIN);
//设置第一列的宽度
ws.setColumnView(0, 15);
//设置第二列的宽度
ws.setColumnView(1, 40);
//设置前三行高度(此处设置高度的单位与设置列的单位是不同的)
ws.setRowView(0, 350);
ws.setRowView(1, 350);
ws.setRowView(2, 350);
//合并单元格(合并第一行第一列,第一行第二列,第二行第一列,第二行第二列)
ws.mergeCells(0, 0, 1, 1);
//创建一个单元格
Label label = new Label(0, 0, "第一行标题", format);
ws.addCell(label);
//设置列标题
Label colums1 = new Label(0,2,"编号");
ws.addCell(colums1);
Label colums2 = new Label(1,2,"名称");
ws.addCell(colums2);
for(int i = 3 ; i<13 ;i++){
Label colums_1 = new Label(0,i,"编号"+i);
Label colums_2 = new Label(1,i,"测试"+i);
ws.addCell(colums_1);
ws.addCell(colums_2);
}
//设置数据有效性
WritableCellFeatures format2 = new WritableCellFeatures ();
List<String> angerlist = new ArrayList<String>();
angerlist.add("是");
angerlist.add("否");
format2.setDataValidationList(angerlist);
//具有数据有效性的单元格
Label validateLabel = new Label(2, 3, " ", format);
validateLabel.setCellFeatures(format2);
ws.addCell(validateLabel);
book.write();
book.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
实现EXCEL的导入
public class ExcelImport {
public static void main(String[] args) {
try {
Workbook book = Workbook.getWorkbook(new File("d:/测试.xls"));
// 获得第一个工作表对象
Sheet sheet = book.getSheet(0);
// 得到列数
int columnum = sheet.getColumns();
// 得到行数
int rownum = sheet.getRows();
System.out.println(columnum);
System.out.println(rownum);
// 循环进行读写
for(int i = 0 ; i < rownum; i++)
{
for(int j = 0 ; j < columnum; j++) {
Cell cell1 = sheet.getCell(j, i);
String result = cell1.getContents();
System.out.print(result);
System.out.print( " \t " );
}
System.out.println();
}
book.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}