天天看点

JXL示例

用JAVA操作Excel表格。

创建一个EXCEL并添加内容:

import java.io.File;

import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;

public class CreateExcel {

	public static void main(String args[]) {
		try {
			// 打开文件
			WritableWorkbook book = Workbook.createWorkbook(new File("F:/doc/JXL/test.xls"));
			// 生成名为"第一页"的工作表,参数0表示这是第一页
			WritableSheet sheet = book.createSheet("第一页", 0);
			// 在Label对象的构造子中指名单元格位置是第i列第j行(0,0)
			// 以及单元格内容为test
			for (int i=0; i<10; i++) {// 代表列
				for(int j=0; j<i;j++) {// 代表行
					Label label = new Label(i, j, "test:i="+i+";j="+j);
					// 将定义好的单元格添加到工作表中
					sheet.addCell(label);
				}
			}

			// 生成名为"第二页"的工作表,参数1表示这是第二页
			WritableSheet sheet2 = book.createSheet("第二页", 1);
			for (int i=0; i<10; i++) {// 代表列
				for(int j=0; j<i;j++) {// 代表行
					// 生成一个保存数字的单元格,必须使用Number的完整包路径否则有语法歧义,单元格位置是第i列第j行,值为789.123
					jxl.write.Number number = new jxl.write.Number(i, j, 789.123);
					sheet2.addCell(number);
				}
			}

			// 写入数据并关闭文件
			book.write();
			book.close();
		} catch (Exception e) {
			System.out.println(e);
		}
	}
}
           

修改刚才的Excel内容:

public class UpdateExcel {
	
	public static void main(String args[]) {
		try {
			// Excel获得文件
			Workbook wb = Workbook.getWorkbook(new File("F:/doc/JXL/test.xls"));
			// 打开一个文件的副本,并且指定数据写回到原文件
			WritableWorkbook book = Workbook.createWorkbook(new File(
					"F:/doc/JXL/test.xls"), wb);
			
			// 获得第一个工作表对象
			WritableSheet sheet = book.getSheet(0);
			// 得到第i列第j行的单元格
			for (int i=0; i<10; i++) {// 代表列
				for(int j=10; j<20;j++) {// 代表行
					Label label = new Label(i, j, "test:i="+i+";j="+j);
					// 将定义好的单元格添加到工作表中
					sheet.addCell(label);
				}
			}
			
			// 获得第二个工作表对象
			WritableSheet sheet2 = book.getSheet(1);
			// 得到第i列第j行的单元格
			for (int i=0; i<10; i++) {// 代表列
				for(int j=10; j<20;j++) {// 代表行
					jxl.write.Number number = new jxl.write.Number(i, j, 3.1415926);
					sheet2.addCell(number);
				}
			}

			// 添加一个工作表
			WritableSheet sheet3 = book.createSheet("第三页", 2);
			sheet3.addCell(new Label(0, 0, "第三页的测试数据"));
			
			book.write();
			book.close();
		} catch (Exception e) {
			System.out.println(e);
		}
	}
}
           

读取Excel内容到代码:

import java.io.File;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;

public class ReadExcel {

	public static void main(String args[]) {
		try {
			Workbook book = Workbook.getWorkbook(new File("F:/doc/JXL/test.xls"));
			// 获得第一个工作表对象
			Sheet sheet = book.getSheet(0);
			// 得到第i列第j行的单元格
			for (int i=0; i<10; i++) {// 代表列
				for(int j=0; j<i;j++) {// 代表行
					Cell cell = sheet.getCell(i, j);// 得到第i列,第j行的数据
					String result = cell.getContents();
					System.out.println(result);
				}
			}

			// 获得第二个工作表对象
			Sheet sheet2 = book.getSheet(1);
			// 得到第i列第j行的单元格
			for (int i=0; i<10; i++) {// 代表列
				for(int j=0; j<i;j++) {// 代表行
					Cell cell = sheet2.getCell(i, j);// 得到第i列,第j行的数据
					String result = cell.getContents();
					System.out.println(result);
				}
			}
			
			book.close();
		} catch (Exception e) {
			System.out.println(e);
		}
	}
}
           

测试成功。