excel操作(jxl)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
excel操作 操作(jxl) Java excel操作(jxl)
IBM 课程体系
J2EE_Struts
© 2010 IBM Corporation
IBM 课程体系
本讲目标
java导入导出excel操作(jxl) Java解释Excel数据(jxl.jar包的使用)
J2EE_Struts
© 2010 IBM Corporation
J2EE_Struts
© 2010 IBM Corporation
IBM 课Βιβλιοθήκη Baidu体系
创建Excel文件
public static void createExcel() throws Exception { File("D:\ my_project\ JXL_Test\ WritableWorkbook workBook=Workbook.createWorkbook(new File("D:\\my_project\\JXL_Test\\test.xls")); sheet=workBook.createSheet("第一页 第一页", WritableSheet sheet=workBook.createSheet("第一页", 0); Label(0,0,"编号 编号"); Label personIdLabel=new Label(0,0,"编号"); Label(1,0,"姓名 姓名"); Label personNameLabel=new Label(1,0,"姓名"); Label(2,0,"地址 地址"); Label personAddressLabel=new Label(2,0,"地址"); Label(3,0,"年龄 年龄"); Label personAgeLabel=new Label(3,0,"年龄"); sheet.addCell(personIdLabel); sheet.addCell(personNameLabel); sheet.addCell(personAddressLabel); sheet.addCell(personAgeLabel); List<Person> personList=new ArrayList<Person>(); Person(1,"张三","武汉 张三","武汉",22)); personList.add(new Person(1,"张三","武汉",22)); Person(2,"李四","武昌 李四","武昌",25)); personList.add(new Person(2,"李四","武昌",25)); Person(3,"王五","上海 王五","上海",20)); personList.add(new Person(3,"王五","上海",20)); Person(4,"赵六","杭州 赵六","杭州",29)); personList.add(new Person(4,"赵六","杭州",29)); Person(5,"刘七","广州 刘七","广州",24)); personList.add(new Person(5,"刘七","广州",24)); for(int i=0;i<personList.size();i++) {Person person=personList.get(i); Label personIdValue=new Label(0,(i+1),String.valueOf(person.getPersonId())); Label personNameValue=new Label(1,(i+1),person.getPersonName()); Label personAddressValue=new Label(2,(i+1),person.getAddress()); Label personAgeValue=new Label(3,(i+1),String.valueOf(person.getAge())); sheet.addCell(personIdValue); J2EE_Struts © 2010 IBM Corporation sheet.addCell(personNameValue); sheet.addCell(personAddressValue);
J2EE_Struts
© 2010 IBM Corporation
IBM 课程体系
二、单元格操作
Excel中很重要的一部分是对单元格的操作,比如行 高、列宽、单元格合并等,所幸jExcelAPI提供了这 些支持
J2EE_Struts
© 2010 IBM Corporation
J2EE_Struts
© 2010 IBM Corporation
IBM 课程体系
搭建环境
将下载后的文件解包,得到jxl.jar,放入classpath, 安装就完成了。
J2EE_Struts
© 2010 IBM Corporation
IBM 课程体系
基本操作
一、创建文件
拟生成一个名为“测试数据.xls”的Excel文件 文件, 拟生成一个名为“测试数据.xls 的Excel文件,其中第一个工作表被命 .xls 名为“第一页” 名为“第一页”
IBM 课程体系
修改 Excel 实现代码
--添加第二页 --添加第二页
public static void updateExcel()throws Exception throws { Workbook workBook=Workbook.getWorkbook(new new File("D:\\my_project\\JXL_Test\\test.xls")); WritableWorkbook book=Workbook.createWorkbook(new new File("D:\\my_project\\JXL_Test\\test.xls"),workBook); WritableSheet sheet=book.createSheet("第二页", 1); Label testLabel=new Label(0,0,"测试"); new Label testValue=new Label(0,1,"test"); new sheet.addCell(testLabel); sheet.addCell(testValue); book.write(); book.close(); }
© 2010 IBM Corporation
IBM 课程体系
修改Excel文件 修改Excel文件 Excel
利用jExcelAPI可以修改已有的Excel文件,修改 Excel文件的时候,除了打开文件的方式不同之外, 其他操作和创建Excel是一样的
J2EE_Struts
© 2010 IBM Corporation
IBM 课程体系
数据格式化
在WritableCellFormat类中,还有一个很重要的方 法是指定数据的对齐方式
//把水平对齐方式指定为居中 //把水平对齐方式指定为居中 format1.setAlignment(jxl.format.Alignment.CENTRE); //把垂直对齐方式指定为居中 //把垂直对齐方式指定为居中 format1.setVerticalAlignment(jxl.format.VerticalAlignment.CENT RE); //设置自动换行 //设置自动换行 format1.setWrap(true);
J2EE_Struts
© 2010 IBM Corporation
IBM 课程体系
数据格式化
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) ③ 其中 I.指定了字串格式:字体为TIMES,字号16,加粗显示。WritableFont有非常丰富 的构造函数,供不同情况下使 用,jExcelAPI的java-doc中有详细列表,这里不 再列出。 II.处代码使用了WritableCellFormat类,这个类非常重要,通过它可以指定单元 格的各种属性,后面的单元格格式化中会有更多 描述。 III.处使用了Label类的构造函数,指定了字串被赋予那种格式 J2EE_Struts © 2010 IBM Corporation
IBM 课程体系
特征描述
支持Excel 95-2000的所有版本 生成Excel 2000标准格式 支持字体、数字、日期操作 能够修饰单元格属性 支持图像和图表 应该说以上功能已经能够大致满足我们的需要。最关键的是这套API是纯Java的, 并不依赖Windows系统,即使运行在Linux下,它同样能够正确 的处理Excel文件。 另外需要说明的是,这套API对图形和图表的支持很有限,而且仅仅识别PNG格式。
J2EE_Struts
© 2010 IBM Corporation
IBM 课程体系
Excel高级操作 Excel高级操作
一、 数据格式化
在Excel中不涉及复杂的数据类型,能够比较好的处理字串、数字和日期 Excel中不涉及复杂的数据类型,能够比较好的处理字串、 中不涉及复杂的数据类型 已经能够满足一般的应用。 已经能够满足一般的应用。 字串格式化 字符串的格式化涉及到的是字体、粗细、字号等元素, 字符串的格式化涉及到的是字体、粗细、字号等元素,这些功能主 要由WritableFont WritableCellFormat类来负责 WritableFont和 要由WritableFont和WritableCellFormat类来负责
IBM 课程体系
读取Excel文件 读取Excel文件 Excel
public static void readExcel()throws Exception throws {Workbook workBook=Workbook.getWorkbook(new new File("D:\\my_project\\JXL_Test\\test.xls")); Sheet sheet=workBook.getSheet(0); int totalRow=sheet.getRows();//总行数 List<Person> personList=new ArrayList<Person>(); new for(int for int i=1;i<totalRow;i++) {Person p=new Person(); new Cell personIdCell=sheet.getCell(0,i);//行 列 Cell personNameCell=sheet.getCell(1,i); Cell personAddressCell=sheet.getCell(2,i); Cell personAgeCell=sheet.getCell(3,i); p.setPersonId(Integer.valueOf(personIdCell.getContents()));//得到内容 p.setAddress(personAddressCell.getContents()); p.setAge(Integer.valueOf(personAgeCell.getContents())); p.setPersonName(personNameCell.getContents()); J2EE_Struts personList.add(p);
IBM 课程体系
J2EE_Struts
© 2010 IBM Corporation
IBM 课程体系
本讲目标
java导入导出excel操作(jxl) Java解释Excel数据(jxl.jar包的使用)
J2EE_Struts
© 2010 IBM Corporation
J2EE_Struts
© 2010 IBM Corporation
IBM 课Βιβλιοθήκη Baidu体系
创建Excel文件
public static void createExcel() throws Exception { File("D:\ my_project\ JXL_Test\ WritableWorkbook workBook=Workbook.createWorkbook(new File("D:\\my_project\\JXL_Test\\test.xls")); sheet=workBook.createSheet("第一页 第一页", WritableSheet sheet=workBook.createSheet("第一页", 0); Label(0,0,"编号 编号"); Label personIdLabel=new Label(0,0,"编号"); Label(1,0,"姓名 姓名"); Label personNameLabel=new Label(1,0,"姓名"); Label(2,0,"地址 地址"); Label personAddressLabel=new Label(2,0,"地址"); Label(3,0,"年龄 年龄"); Label personAgeLabel=new Label(3,0,"年龄"); sheet.addCell(personIdLabel); sheet.addCell(personNameLabel); sheet.addCell(personAddressLabel); sheet.addCell(personAgeLabel); List<Person> personList=new ArrayList<Person>(); Person(1,"张三","武汉 张三","武汉",22)); personList.add(new Person(1,"张三","武汉",22)); Person(2,"李四","武昌 李四","武昌",25)); personList.add(new Person(2,"李四","武昌",25)); Person(3,"王五","上海 王五","上海",20)); personList.add(new Person(3,"王五","上海",20)); Person(4,"赵六","杭州 赵六","杭州",29)); personList.add(new Person(4,"赵六","杭州",29)); Person(5,"刘七","广州 刘七","广州",24)); personList.add(new Person(5,"刘七","广州",24)); for(int i=0;i<personList.size();i++) {Person person=personList.get(i); Label personIdValue=new Label(0,(i+1),String.valueOf(person.getPersonId())); Label personNameValue=new Label(1,(i+1),person.getPersonName()); Label personAddressValue=new Label(2,(i+1),person.getAddress()); Label personAgeValue=new Label(3,(i+1),String.valueOf(person.getAge())); sheet.addCell(personIdValue); J2EE_Struts © 2010 IBM Corporation sheet.addCell(personNameValue); sheet.addCell(personAddressValue);
J2EE_Struts
© 2010 IBM Corporation
IBM 课程体系
二、单元格操作
Excel中很重要的一部分是对单元格的操作,比如行 高、列宽、单元格合并等,所幸jExcelAPI提供了这 些支持
J2EE_Struts
© 2010 IBM Corporation
J2EE_Struts
© 2010 IBM Corporation
IBM 课程体系
搭建环境
将下载后的文件解包,得到jxl.jar,放入classpath, 安装就完成了。
J2EE_Struts
© 2010 IBM Corporation
IBM 课程体系
基本操作
一、创建文件
拟生成一个名为“测试数据.xls”的Excel文件 文件, 拟生成一个名为“测试数据.xls 的Excel文件,其中第一个工作表被命 .xls 名为“第一页” 名为“第一页”
IBM 课程体系
修改 Excel 实现代码
--添加第二页 --添加第二页
public static void updateExcel()throws Exception throws { Workbook workBook=Workbook.getWorkbook(new new File("D:\\my_project\\JXL_Test\\test.xls")); WritableWorkbook book=Workbook.createWorkbook(new new File("D:\\my_project\\JXL_Test\\test.xls"),workBook); WritableSheet sheet=book.createSheet("第二页", 1); Label testLabel=new Label(0,0,"测试"); new Label testValue=new Label(0,1,"test"); new sheet.addCell(testLabel); sheet.addCell(testValue); book.write(); book.close(); }
© 2010 IBM Corporation
IBM 课程体系
修改Excel文件 修改Excel文件 Excel
利用jExcelAPI可以修改已有的Excel文件,修改 Excel文件的时候,除了打开文件的方式不同之外, 其他操作和创建Excel是一样的
J2EE_Struts
© 2010 IBM Corporation
IBM 课程体系
数据格式化
在WritableCellFormat类中,还有一个很重要的方 法是指定数据的对齐方式
//把水平对齐方式指定为居中 //把水平对齐方式指定为居中 format1.setAlignment(jxl.format.Alignment.CENTRE); //把垂直对齐方式指定为居中 //把垂直对齐方式指定为居中 format1.setVerticalAlignment(jxl.format.VerticalAlignment.CENT RE); //设置自动换行 //设置自动换行 format1.setWrap(true);
J2EE_Struts
© 2010 IBM Corporation
IBM 课程体系
数据格式化
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) ③ 其中 I.指定了字串格式:字体为TIMES,字号16,加粗显示。WritableFont有非常丰富 的构造函数,供不同情况下使 用,jExcelAPI的java-doc中有详细列表,这里不 再列出。 II.处代码使用了WritableCellFormat类,这个类非常重要,通过它可以指定单元 格的各种属性,后面的单元格格式化中会有更多 描述。 III.处使用了Label类的构造函数,指定了字串被赋予那种格式 J2EE_Struts © 2010 IBM Corporation
IBM 课程体系
特征描述
支持Excel 95-2000的所有版本 生成Excel 2000标准格式 支持字体、数字、日期操作 能够修饰单元格属性 支持图像和图表 应该说以上功能已经能够大致满足我们的需要。最关键的是这套API是纯Java的, 并不依赖Windows系统,即使运行在Linux下,它同样能够正确 的处理Excel文件。 另外需要说明的是,这套API对图形和图表的支持很有限,而且仅仅识别PNG格式。
J2EE_Struts
© 2010 IBM Corporation
IBM 课程体系
Excel高级操作 Excel高级操作
一、 数据格式化
在Excel中不涉及复杂的数据类型,能够比较好的处理字串、数字和日期 Excel中不涉及复杂的数据类型,能够比较好的处理字串、 中不涉及复杂的数据类型 已经能够满足一般的应用。 已经能够满足一般的应用。 字串格式化 字符串的格式化涉及到的是字体、粗细、字号等元素, 字符串的格式化涉及到的是字体、粗细、字号等元素,这些功能主 要由WritableFont WritableCellFormat类来负责 WritableFont和 要由WritableFont和WritableCellFormat类来负责
IBM 课程体系
读取Excel文件 读取Excel文件 Excel
public static void readExcel()throws Exception throws {Workbook workBook=Workbook.getWorkbook(new new File("D:\\my_project\\JXL_Test\\test.xls")); Sheet sheet=workBook.getSheet(0); int totalRow=sheet.getRows();//总行数 List<Person> personList=new ArrayList<Person>(); new for(int for int i=1;i<totalRow;i++) {Person p=new Person(); new Cell personIdCell=sheet.getCell(0,i);//行 列 Cell personNameCell=sheet.getCell(1,i); Cell personAddressCell=sheet.getCell(2,i); Cell personAgeCell=sheet.getCell(3,i); p.setPersonId(Integer.valueOf(personIdCell.getContents()));//得到内容 p.setAddress(personAddressCell.getContents()); p.setAge(Integer.valueOf(personAgeCell.getContents())); p.setPersonName(personNameCell.getContents()); J2EE_Struts personList.add(p);