前段时间由于项目的需求,要求使用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.123 27 */ 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())
使用JXL对Excel表格进行简单的操作
时间: 2024-10-24 02:44:28