java操作excel表格
最近需要在程序中用到存储excel和打印等功能,不免涉及到对excel的操作。给大家简单的介绍下jxl这个开源的接口的用法,这样在web和se的环境中都可以方便的使用,并且不受浏览器和运行环境的限制,在linux环境下也能正常运行。
闲话不多说,直接看案例:
public void writeExcel(){ try { // 打开文件 WritableWorkbook book = Workbook.createWorkbook(new File( " test.xls ")); WritableSheet sheet = book.createSheet(" 第一页 ", 0); Label [] label = new Label[5]; Number [] number = new Number[5]; for(int i =0;i<5;i++){ //Label(i, 0, "字段"+i);中的第一个参数代表的是column,第二个代表的是row,第三个代表的是写入的内容 label[i] = new Label(i, 0, "字段"+i); number[i] = new Number(i, 1, i); // 按照指定的位置将数据加入excel表格中 sheet.addCell(label[i]); sheet.addCell(number[i]); } // 写入数据并关闭文件 book.write(); book.close(); } catch (Exception e) { System.out.println(e); } }
这是我们读取的步骤,大致上是:
1.创建WritableWorkbook对象创建到我们机器存储空间中的一张可编辑excel文件
2.大家都知道一个xls中是可以有很多表格的 WritableSheet sheet = book.createSheet(" 第一页 ", 0); 是建立一张新的工作表 0 表示该表在文件中的位置
3. 通过sheet.addCell();方法我们就能向表中加入元素,这个元素的属性重点在于其在表中的位置 第一个参数指的是列,第二个是行,如 Cell cell = new Clee( int column,int row,content);
4. 使用book.write();写入文件实现持久化,然后使用 book.close();关闭即可。
关于读取本地的xls文件Demo:
public void readExcel(){ try { Workbook book = Workbook.getWorkbook( new File( " test.xls " )); // 获取xls文件中的表对象 getSheet()中的参数0表示第一张表 也可根据表的名字 字符串 获得表对象 Sheet sheet = book.getSheet( 0 ); // sheet.getCell( 1 , 0 );中的第一个参数表示column第二个表示row for(int i =0;i<sheet.getColumns();i++){//sheet.getColumns 返回当前选择表的总列数的数值 Cell cell1 = sheet.getCell( i , 1 ); String result = cell1.getContents(); System.out.println(result); } book.close(); } catch (Exception e) { System.out.println(e); } }
这样就实现了我们程序对excel的操作。至于web环境中我们想要获得jsp页面中的数据然后存入表格的话只需要在我们的action中使用这种操作即可。至于页面之间传递参数相信大家都会吧。
下面附上jxl的官方API:点击查看