Netjava MyLesson 用java对Excel的读取与写入

excel是电子表格,在我们日常应用中用途非常广泛,但是当我们拿到一个数据量非常大的表格,我们要将其中的数据按照自己的格式进行拆开和组合时,需要耗费的时间就很多,而且若有很多这种类似的表格出现时,我们对其一一进行分解会变的极为耗时,这时我们就需要对excel进行编程处理。


java有一个包jxl针对excel进行字体、数字、日期操作、修饰单元格属性、支持图像和图表。
这样通过编程,我们就可以用java对excel进行操作,从而可以大批量地生成excel文件,减少我们的工作量。

首先我们要导入jxl包,下载jxl包(附录中给出),将其放在你的Java\jdk1.7.0_25\jre\lib\ext目录下,同时在你所要用它的java项目中右键,选择Build Path-Add External Archives,选择你要导入的包jxl.jar。这样我们会在java project下看到多了一个文件夹名为Referenced Libraries,其下便有你导入的包。包导入成功后,我们就开始去查找API(附录中给出),知道它的运用方法。

 

我们今天便来介绍一下excel的简单读取和写入。

		// 首先我们来学习excel的写入
		// 首先创建一个可写入的excel文件
		WritableWorkbook wwb = Workbook.createWorkbook(new File(
				"src/excel/test.xls"));

		// 创建一个工作表,名为test,在第一个位置
		WritableSheet sheet = wwb.createSheet("test", 0);

		// 合并单元格,位置从0,0到6,0
		sheet.mergeCells(0, 0, 6, 0);

		// 设置工作表中第0列的宽度(单位不详)
		sheet.setColumnView(0, 30);

		// 设置工作表中第0行的高度(单位不详)
		sheet.setRowView(0, 500);

		// 设置横向打印
		sheet.setPageSetup(PageOrientation.LANDSCAPE, PaperSize.A4, 0.5d, 0.5d);

		// 设置缩放比例为90%
		sheet.getSettings().setScaleFactor(90);

		// 创建一个自定义字体格式,字体为宋体,字号为20,线条为加粗,有单下划线,红色字体
		WritableFont wf = new WritableFont(WritableFont.createFont("宋体"), 12,
				WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE,
				Colour.RED);

		// 创建一个自定义单元格式,运用上述字体
		WritableCellFormat wcf = new WritableCellFormat(wf);

		// 设置单元格式左右居中
		wcf.setAlignment(Alignment.CENTRE);

		// 设置单元格式垂直居中
		wcf.setVerticalAlignment(VerticalAlignment.CENTRE);

		// 设置单元格周围有边框
		wcf.setBorder(Border.ALL, BorderLineStyle.THIN);

		// 创建一个文本标签,前两项为其坐标,第三项为其内容,最后为其单元格式
		Label la = new Label(0, 0, "第一个例子", wcf);

		// 将这个标签添加到工作表中
		sheet.addCell(la);

		// 下面我们来写入数字标签,首先我们自定义一个数字格式
		// 我们这里保存的是两位小数点的数字格式,具体的可以进入excel,右键单元格-设置单元格格式-自定义中去查找
		NumberFormat nf = new NumberFormat("#,##0.00");

		// 和标签一样我们来创建一个自定义单元格式
		WritableCellFormat nwcf = new WritableCellFormat(nf);

		// 设置单元格式
		nwcf.setAlignment(Alignment.RIGHT);
		nwcf.setVerticalAlignment(VerticalAlignment.CENTRE);

		// 创建一个数字标签,注意这里调用Number类时必须要用全程
		jxl.write.Number num = new jxl.write.Number(0, 1, 123, nwcf);

		// 将这个标签添加到工作表中
		sheet.addCell(num);

		// 将excel文件写入
		wwb.write();
		// 关闭excel文件输入(不关闭无法形成xls文件!)
		wwb.close();

 生成文件如图:


Netjava MyLesson 用java对Excel的读取与写入
 

		// 下面我们来学习excel的读取,相对与写入较为简单
		// 首先创建一个文件对象
		Workbook wb = Workbook.getWorkbook(new File("src/excel/test.xls"));

		// 创建工作表对象
		Sheet sheet = wb.getSheet(0);

		// 读取第一个单元格的内容,并打印出来
		System.out.println(sheet.getCell(0, 0).getContents());

		// 我们也可以读取工作表数组
		Sheet[] sheets = wb.getSheets();

		// 打印每一个工作表的第一个单元格内容
		for (Sheet sh : sheets) {
			System.out.println(sh.getCell(0, 0).getContents());
		}

		// 关闭文件读入
		wb.close();

 

你可能感兴趣的:(Excel)