首页 > 代码库 > 使用JXL对Excel表格进行简单的操作
使用JXL对Excel表格进行简单的操作
前段时间由于项目的需求,要求使用JXL,做完之后做下记录,方便以后查看!
首先我们要先下载JXL的JAR包:http://download.csdn.net/detail/u013352832/7777047
将JXL.JAR 包导入到项目中即可直接只用!
直接上代码
使用JXL来操作Excel表格,我们应该首先判断一下Excel表格是否存在
1 File file = new File(user.getZkfp());2 // 判断zkfp.xls文件是否存在,不存在则创建zkfp.xls文件,存在则进行修改3 if (!file.exists() && !file.isDirectory()) {4 //Excel表格不存在5 } else {6 //Excel表格已存在7 }
使用JXL创建Excel表格:
1 package test; 2 3 // 生成Excel的类 4 import java.io.File; 5 6 import jxl.Workbook; 7 import jxl.write.Label; 8 import jxl.write.WritableSheet; 9 import jxl.write.WritableWorkbook;10 11 public class CreateExcel {12 public static void main(String args[]) {13 try {14 // 打开文件 15 WritableWorkbook book = Workbook.createWorkbook( new File( " test.xls " ));16 // 生成名为“第一页”的工作表,参数0表示这是第一页 17 WritableSheet sheet = book.createSheet( " 第一页 " , 0 );18 // 在Label对象的构造子中指名单元格位置是第一列第一行(0,0)19 // 以及单元格内容为test 20 Label label = new Label( 0 , 0 , " test " );21 22 // 将定义好的单元格添加到工作表中 23 sheet.addCell(label);24 25 /* 26 * 生成一个保存数字的单元格 必须使用Number的完整包路径,否则有语法歧义 单元格位置是第二列,第一行,值为789.12327 */ 28 jxl.write.Number number = new jxl.write.Number( 1 , 0 , 555.12541 );29 sheet.addCell(number);30 31 // 写入数据并关闭文件 32 book.write();33 book.close();34 35 } catch (Exception e) {36 System.out.println(e);37 } 38 } 39 }
如果想修改Excel表格的话,可以直接使用以上代码进行修改,先打开Excel表格,在获取工作表,就可以进行设置进行修改了。
在开发中有时候我们还需要读取Excel表格获取数据,代码如下:
1 package test; 2 3 // 读取Excel的类 4 import java.io.File; 5 6 import jxl.Cell; 7 import jxl.Sheet; 8 import jxl.Workbook; 9 10 public class ReadExcel {11 public static void main(String args[]) {12 try {13 Workbook book = Workbook.getWorkbook( new File( " test.xls " ));14 // 获得第一个工作表对象 15 Sheet sheet = book.getSheet( 0 );16 // 得到第一列第一行的单元格 17 Cell cell1 = sheet.getCell( 0 , 0 );18 String result = cell1.getContents();19 System.out.println(result);20 book.close();21 } catch (Exception e) {22 System.out.println(e);23 } 24 } 25 }
在实际开发中,我们还可能面临对已经有数据的Excel表格进行添加数据、添加工作表等操作,在添加数据时我们需要将数据添加到最后一行,而数据总共有多少行是我们需要获取到的,代码如下:
1 /** 2 * 添加数据 3 * @param numberno 4 * @param route 路径 5 * @param name 6 */ 7 public void savwUser(String numberno, String route, String name) { 8 try { 9 // 打开文件10 Workbook book = Workbook.getWorkbook(new File(route));11 // 获得第一个工作表对象12 Sheet sheet1 = book.getSheet(0);13 // 获得第一个工作表对象14 Sheet sheet2 = book.getSheet(1);15 // 获取行16 int length1 = sheet1.getRows();17 int length2 = sheet2.getRows();18 19 // 根据book创建一个操作对象20 WritableWorkbook wbook = Workbook.createWorkbook(new File(route),21 book);22 // 得到一个工作对象23 WritableSheet sh1 = wbook.getSheet(0);24 WritableSheet sh2 = wbook.getSheet(1);25 26 // 创建用户表数据27 jxl.write.Number user11 = new jxl.write.Number(0, length1, length1-1);28 Label user12 = new Label(1, length1 + 1, numberno);29 Label user13 = new Label(2, length1 + 1, route);30 Label user14 = new Label(3, length1 + 1, name);31 // 将用户表数据添加到用户表上32 sh1.addCell(user11);33 sh1.addCell(user12);34 sh1.addCell(user13);35 sh1.addCell(user14);36 37 // 创建时间表数据38 jxl.write.Number label0 = new jxl.write.Number(0, length2,39 length2 - 1);40 Label label = new Label(1, length2, numberno);41 Label createDate = new Label(2, length2, df.format(new Date()));42 // 将时间表数据添加到时间表上43 sh2.addCell(label0);44 sh2.addCell(label);45 sh2.addCell(createDate);46 47 wbook.write();48 wbook.close();49 50 } catch (Exception e) {51 System.out.println(e);52 }53 }
在使用JXL操作Excel表格时需要注意的是:我们在添加数据的时候数据要求最好入座,所以行和列要特别注意,在创建和获取工作表时是从下表0开始的!
插入时间数据时需要特别注意,我刚开始是直接new Date()获取时间插入数据,获取进行测试的时候,时间偏差很严重,后来就将时间格式化为字符串插入进去就解决了这一问题
格式化时间:
1 // 设置日期格式 2 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 3 df.format(new Date())
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。