利用java jxl 创建,读取,更新excel文档

摘要: 用JAVA 读写 EXCEL,在网上查看,很多人会用 POI 方式,个人试用结果,感觉并不是那么好用。其实还有一个组件,jxl ,用 jxl 也可以很方便的完成 excel 文档的读写操作。jxl 的下载地址: http://www.andykhan.com/jexcelapi/index.html

用JAVA 读写 EXCEL,在网上查看,很多人会用 POI 方式,个人试用结果,感觉并不是那么好用。

其实还有一个组件,jxl ,用 jxl 也可以很方便的完成 excel 文档的读写操作。

jxl 的下载地址: http://www.andykhan.com/jexcelapi/index.html

将下载的JAR 包添加到工程的path中。然后就可以写测试程序了

1. 生成一个excel文档

2. 读取excel文档内容

3. 更新excel文档内容

各自源代码如下:

java jxl 生成EXCEL文档:

import java.io.*;
import jxl.*;
import jxl.write.*;

public class CreateXLS {
	public static void main(String args[]) {
		try {
			// 打开文件
			WritableWorkbook book = Workbook.createWorkbook(new File("测试.xls"));
			System.out.print("生成文挡: ---测试.xls");
			// 生成名为“第一页”的工作表,参数0表示这是第一页
			WritableSheet sheet = book.createSheet("第一页", 0);
			// 在Label对象的构造子中指名单元格位置是第一列第一行(0,0)
			// 以及单元格内容为test
			Label label = new Label(0, 0, "test");
			// 将定义好的单元格添加到工作表中
			sheet.addCell(label);
			/*
			 * 生成一个保存数字的单元格 必须使用Number的完整包路径,否则有语法歧义 单元格位置是第二列,第一行,值为789.123
			 */
			jxl.write.Number number = new jxl.write.Number(1, 0, 789.123);
			sheet.addCell(number);
			// 写入数据并关闭文件
			book.write();
			book.close();
		} catch (Exception e) {
			System.out.println(e);
		}
	}
}


java jxl 更新Excel 文档
import java.io.*;

import jxl.*;
import jxl.read.biff.BiffException;
import jxl.write.*;

public class UpdateXLS {
	public static void write()throws Exception{
        WritableWorkbook wwb=Workbook.createWorkbook(new File("c:/1.xls"));
        WritableSheet ws=wwb.createSheet("Test Sheet 1",0);
        File file=new File("C:\\jbproject\\PVS\\WebRoot\\weekhit\\1109496996281.png");
        WritableImage image=new WritableImage(1, 4, 6, 18,file);
        ws.addImage(image);
        wwb.write();
        wwb.close();
    }
	
	
	public static void main(String args[]) throws BiffException, IOException {
		try {
			// Excel获得文件
			Workbook wb = Workbook.getWorkbook(new File("测试.xls"));
			// 打开一个文件的副本,并且指定数据写回到原文件
			WritableWorkbook book = Workbook.createWorkbook(new File("测试.xls"),
					wb);
			// 添加一个工作表
			WritableSheet sheet = book.createSheet("第二页", 1);
			sheet.addCell(new Label(0, 0, "第二页的测试数据"));
			book.write();
			book.close();
			System.out.print("数据已更新!");
			
			
			WritableFont font1= new WritableFont(WritableFont.TIMES,16,WritableFont.BOLD); 
			//设置字体格式为excel支持的格式 
			WritableFont font3=new WritableFont(WritableFont.createFont("楷体_GB2312"),12,WritableFont.NO_BOLD );
			 WritableCellFormat format1=new WritableCellFormat(font1); 
			 Label label=new Label(0,0,"data 4 test",format1); 
//			 ①指定了字串格式:字体为TIMES,字号16,加粗显示。WritableFont有非常丰富的构造子,供不同情况下使用,
//			 jExcelAPI的java-doc中有详细列表,这里不再列出。 
//			 ②处代码使用了WritableCellFormat类,这个类非常重要,通过它可以指定单元格的各种属性,后面的单元格格式化中会有更多描述。
//			 ③处使用了Label类的构造子,指定了字串被赋予那种格式。 在WritableCellFormat类中,还有一个很重要的方法是指定数据的对齐
//			 方式,比如针对我们上面的实例,可以指定:

				//把水平对齐方式指定为居中 

				format1.setAlignment(jxl.format.Alignment.CENTRE); 

				//把垂直对齐方式指定为居中 

				format1.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);

				//设置自动换行
				format1.setWrap(true);

		
		} catch (Exception e) {
			System.out.println(e);
		}
		
		
		
		
		String path="c:\\excel.xls";//Excel文件URL
		InputStream is = new FileInputStream(path);//写入到FileInputStream
		jxl.Workbook wb = Workbook.getWorkbook(is); //得到工作薄 
		jxl.Sheet st = wb.getSheet(0);//得到工作薄中的第一个工作表
		Cell cell=st.getCell(0,0);//得到工作表的第一个单元格,即A1
		String content=cell.getContents();//getContents()将Cell中的字符转为字符串
		wb.close();//关闭工作薄
		is.close();//关闭输入流

	}
}


java jxl 读取 excel
import java.io.*;
import jxl.*;

public class ReadXLS {
	public static void main(String args[]) {
		try {
			Workbook book = Workbook.getWorkbook(new File("测试.xls"));
			// 获得第一个工作表对象
			Sheet sheet = book.getSheet(0);
			// 得到第一列第一行的单元格
			Cell cell1 = sheet.getCell(0, 0);
			String result = cell1.getContents();
			System.out.println(result);
			Cell cell2= sheet.getCell(1, 0);
			String result1= cell2.getContents();
			System.out.println(result1);
			book.close();
		} catch (Exception e) {
			System.out.println(e);
		}
	}
}

上一篇: django原生SQL语句查询返回字典的方法
下一篇: django 复合主键(composit primary key)
 评论 ( What Do You Think )
名称
邮箱
网址
评论
验证
   
 

 


  • 微信公众号

  • 我的微信

站点声明:

1、一号门博客CMS,由Python, MySQL, Nginx, Wsgi 强力驱动

2、部分文章或者资源来源于互联网, 有时候很难判断是否侵权, 若有侵权, 请联系邮箱:summer@yihaomen.com, 同时欢迎大家注册用户,主动发布无版权争议的 文章/资源.

3、鄂ICP备14001754号-3, 鄂公网安备 42280202422812号