JAVA操作Excel表

package com.excel.test;

import java.io.File;

import jxl.Sheet;
import jxl.Workbook;
import jxl.format.Alignment;
import jxl.format.Colour;
import jxl.format.Pattern;
import jxl.format.VerticalAlignment;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableImage;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;

/**
* java操作Excel表
* @author lxzqz
*
*/
public class CreateExcel {

/**
* 创建Excel表
*/
public static void createExcel() {
try {
// 打开文件
WritableWorkbook book = Workbook.createWorkbook(new File(
"testzhang.xls "));
// 生成名为“第一页”的工作表,参数0表示这是第一页
WritableSheet sheet = book.createSheet(" 第一页 ", 0);

//合并单元格
//col,row,col1,row2
sheet.mergeCells(0, 5, 2, 6);

// 在Label对象的构造子中指名单元格位置是第一列第一行(0,0)
// 以及单元格内容为test
//定义0列0行单元格内容
Label label = new Label(0, 0, "555.12541");

//定义样式,在该实例中可以定义字体,背景颜色,位置等
WritableCellFormat format = new WritableCellFormat();
//设置背景颜色和单元格样式
format.setBackground(Colour.RED, Pattern.NONE);
//设置水平位置--居中
format.setAlignment(Alignment.CENTRE);
//设置垂直位置--居中
format.setVerticalAlignment(VerticalAlignment.CENTRE);
//true自动换号,false不自动换行
format.setWrap(true);
// 将定义好的单元格添加到工作表中
sheet.addCell(label);
Label lb = new Label(0, 5, "zhang",format);
//lb.setCellFormat()
sheet.addCell(lb);

//图片位置
File image = new File("E:\\flowdata\\zhang.png");
//创建图片位置3+1列,5+1行,10宽,15高
WritableImage wi = new WritableImage(3, 5, 10, 15, image);
sheet.addImage(wi);

/*
* 生成一个保存数字的单元格 必须使用Number的完整包路径,否则有语法歧义 单元格位置是第二列,第一行,值为789.123
*/
jxl.write.Number number = new jxl.write.Number(1, 0, 555.12541);
sheet.addCell(number);

// 写入数据并关闭文件
book.write();
book.close();

} catch (Exception e) {
System.out.println(e);
}
}

/**
* 读取Excel表
*/
public static void readExcel() {
try {
Workbook book = Workbook.getWorkbook(new File("D:\\政务空间地理信息图层数据属性详细2.xls"));
// 获得第一个工作表对象
Sheet sheet = book.getSheet(2);
int rows = sheet.getRows();
System.out.println(rows);
int cols = sheet.getColumns();
System.out.println(cols);
System.out.println(sheet.getCell(3, 2).getContents().trim());
String s = "";
for(int i = 2; i < rows; i++) {
for(int j = 0; j < cols; j++) {
//获取j列i行数据内容
s += sheet.getCell(j, i).getContents() + "\t";
if(j+1 == cols) {
s += "\r\n";
}
}
}
System.out.println(s);
book.close();
} catch (Exception e) {
System.out.println(e);
}
}

/**
* 修改Excel表
*/
public static void updateExcel() {
try {
// Excel获得文件
Workbook wb = Workbook.getWorkbook(new File(" test.xls "));
//获取Excel工作副本
WritableWorkbook book = Workbook.createWorkbook(new File(
" test.xls"), wb);
WritableSheet sheet = book.createSheet("第二页", 1);
sheet.addCell(new Label(0, 0, "测试数据"));
//写入数据,这个动作必须执行,不论是否有新的数据写入
book.write();
//关闭数据流
book.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public static void main(String[] args) {
createExcel();
//readExcel();
//updateExcel();
}

}

你可能感兴趣的:(JXL,JAVA操作EXCEL表)