由于需要使用JXL,今天特总结如下。
一、实现Excle的导入
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();
}
}
}
二、实现简单的Excle导出
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();
}
}
}